acl.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. export enum OrgRole {
  2. Viewer = 'Viewer',
  3. Editor = 'Editor',
  4. Admin = 'Admin',
  5. }
  6. export interface DashboardAclDTO {
  7. id?: number;
  8. dashboardId?: number;
  9. userId?: number;
  10. userLogin?: string;
  11. userEmail?: string;
  12. teamId?: number;
  13. team?: string;
  14. permission?: PermissionLevel;
  15. role?: OrgRole;
  16. icon?: string;
  17. inherited?: boolean;
  18. }
  19. export interface DashboardAclUpdateDTO {
  20. userId: number;
  21. teamId: number;
  22. role: OrgRole;
  23. permission: PermissionLevel;
  24. }
  25. export interface DashboardAcl {
  26. id?: number;
  27. dashboardId?: number;
  28. userId?: number;
  29. userLogin?: string;
  30. userEmail?: string;
  31. teamId?: number;
  32. team?: string;
  33. permission?: PermissionLevel;
  34. role?: OrgRole;
  35. icon?: string;
  36. name?: string;
  37. inherited?: boolean;
  38. sortRank?: number;
  39. userAvatarUrl?: string;
  40. teamAvatarUrl?: string;
  41. }
  42. export interface DashboardPermissionInfo {
  43. value: PermissionLevel;
  44. label: string;
  45. description: string;
  46. }
  47. export interface NewDashboardAclItem {
  48. teamId: number;
  49. userId: number;
  50. role?: OrgRole;
  51. permission: PermissionLevel;
  52. type: AclTarget;
  53. }
  54. export enum PermissionLevel {
  55. View = 1,
  56. Edit = 2,
  57. Admin = 4,
  58. }
  59. export enum DataSourcePermissionLevel {
  60. Query = 1,
  61. Admin = 2,
  62. }
  63. export enum AclTarget {
  64. Team = 'Team',
  65. User = 'User',
  66. Viewer = 'Viewer',
  67. Editor = 'Editor',
  68. }
  69. export interface AclTargetInfo {
  70. value: AclTarget;
  71. text: string;
  72. }
  73. export const dataSourceAclLevels = [
  74. { value: DataSourcePermissionLevel.Query, label: 'Query', description: 'Can query data source.' },
  75. ];
  76. export const dashboardAclTargets: AclTargetInfo[] = [
  77. { value: AclTarget.Team, text: 'Team' },
  78. { value: AclTarget.User, text: 'User' },
  79. { value: AclTarget.Viewer, text: 'Everyone With Viewer Role' },
  80. { value: AclTarget.Editor, text: 'Everyone With Editor Role' },
  81. ];
  82. export const dashboardPermissionLevels: DashboardPermissionInfo[] = [
  83. { value: PermissionLevel.View, label: 'View', description: 'Can view dashboards.' },
  84. { value: PermissionLevel.Edit, label: 'Edit', description: 'Can add, edit and delete dashboards.' },
  85. {
  86. value: PermissionLevel.Admin,
  87. label: 'Admin',
  88. description: 'Can add/remove permissions and can add, edit and delete dashboards.',
  89. },
  90. ];
  91. export enum TeamPermissionLevel {
  92. Member = 0,
  93. Admin = 4,
  94. }
  95. export interface TeamPermissionInfo {
  96. value: TeamPermissionLevel;
  97. label: string;
  98. description: string;
  99. }
  100. export const teamsPermissionLevels: TeamPermissionInfo[] = [
  101. { value: TeamPermissionLevel.Member, label: 'Member', description: 'Is team member' },
  102. {
  103. value: TeamPermissionLevel.Admin,
  104. label: 'Admin',
  105. description: 'Can add/remove permissions, members and delete team.',
  106. },
  107. ];