acl.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. }
  40. export interface DashboardPermissionInfo {
  41. value: PermissionLevel;
  42. label: string;
  43. description: string;
  44. }
  45. export interface NewDashboardAclItem {
  46. teamId: number;
  47. userId: number;
  48. role?: OrgRole;
  49. permission: PermissionLevel;
  50. type: AclTarget;
  51. }
  52. export enum PermissionLevel {
  53. View = 1,
  54. Edit = 2,
  55. Admin = 4,
  56. }
  57. export enum DataSourcePermissionLevel {
  58. Query = 1,
  59. Admin = 2,
  60. }
  61. export enum AclTarget {
  62. Team = 'Team',
  63. User = 'User',
  64. Viewer = 'Viewer',
  65. Editor = 'Editor',
  66. }
  67. export interface AclTargetInfo {
  68. value: AclTarget;
  69. text: string;
  70. }
  71. export const dataSourceAclLevels = [
  72. { value: DataSourcePermissionLevel.Query, label: 'Query', description: 'Can query data source.' },
  73. ];
  74. export const dashboardAclTargets: AclTargetInfo[] = [
  75. { value: AclTarget.Team, text: 'Team' },
  76. { value: AclTarget.User, text: 'User' },
  77. { value: AclTarget.Viewer, text: 'Everyone With Viewer Role' },
  78. { value: AclTarget.Editor, text: 'Everyone With Editor Role' },
  79. ];
  80. export const dashboardPermissionLevels: DashboardPermissionInfo[] = [
  81. { value: PermissionLevel.View, label: 'View', description: 'Can view dashboards.' },
  82. { value: PermissionLevel.Edit, label: 'Edit', description: 'Can add, edit and delete dashboards.' },
  83. {
  84. value: PermissionLevel.Admin,
  85. label: 'Admin',
  86. description: 'Can add/remove permissions and can add, edit and delete dashboards.',
  87. },
  88. ];
  89. export enum TeamPermissionLevel {
  90. Member = 0,
  91. Admin = 4,
  92. }
  93. export interface TeamPermissionInfo {
  94. value: TeamPermissionLevel;
  95. label: string;
  96. description: string;
  97. }
  98. export const teamsPermissionLevels: TeamPermissionInfo[] = [
  99. { value: TeamPermissionLevel.Member, label: 'Member', description: 'Is team member' },
  100. {
  101. value: TeamPermissionLevel.Admin,
  102. label: 'Admin',
  103. description: 'Can add/remove permissions, members and delete team.',
  104. },
  105. ];