permission_constants.py 107 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004
  1. """
  2. @project: qabot
  3. @Author:虎虎
  4. @file: permission_constants.py
  5. @date:2023/9/13 18:23
  6. @desc: 权限,角色 常量
  7. """
  8. from enum import Enum
  9. from functools import reduce
  10. from typing import List
  11. from django.db import models
  12. from django.utils.translation import gettext_lazy as _
  13. from maxkb import settings
  14. class Group(Enum):
  15. """
  16. 权限组 一个组一般对应前端一个菜单
  17. """
  18. USER = "USER_MANAGEMENT"
  19. # 应用
  20. APPLICATION = "APPLICATION"
  21. # 应用概览
  22. APPLICATION_OVERVIEW = "APPLICATION_OVERVIEW"
  23. # 应用接入
  24. APPLICATION_ACCESS = "APPLICATION_ACCESS"
  25. # 应用 对话用户
  26. APPLICATION_CHAT_USER = "APPLICATION_CHAT_USER"
  27. # 知识库 对话用户
  28. KNOWLEDGE_CHAT_USER = "KNOWLEDGE_CHAT_USER"
  29. # 应用对话日志
  30. APPLICATION_CHAT_LOG = "APPLICATION_CHAT_LOG"
  31. KNOWLEDGE = "KNOWLEDGE"
  32. SYSTEM_KNOWLEDGE = "SYSTEM_KNOWLEDGE"
  33. SYSTEM_RES_KNOWLEDGE = "SYSTEM_RESOURCE_KNOWLEDGE"
  34. KNOWLEDGE_HIT_TEST = "KNOWLEDGE_HIT_TEST"
  35. KNOWLEDGE_DOCUMENT = "KNOWLEDGE_DOCUMENT"
  36. KNOWLEDGE_WORKFLOW = "KNOWLEDGE_WORKFLOW"
  37. KNOWLEDGE_TAG = "KNOWLEDGE_TAG"
  38. SYSTEM_KNOWLEDGE_DOCUMENT = "SYSTEM_KNOWLEDGE_DOCUMENT"
  39. SYSTEM_KNOWLEDGE_WORKFLOW = "SYSTEM_KNOWLEDGE_WORKFLOW"
  40. SYSTEM_RES_KNOWLEDGE_DOCUMENT = "SYSTEM_RESOURCE_KNOWLEDGE_DOCUMENT"
  41. SYSTEM_RES_KNOWLEDGE_WORKFLOW = "SYSTEM_RESOURCE_KNOWLEDGE_WORKFLOW"
  42. SYSTEM_RES_KNOWLEDGE_TAG = "SYSTEM_RES_KNOWLEDGE_TAG"
  43. SYSTEM_KNOWLEDGE_TAG = "SYSTEM_KNOWLEDGE_TAG"
  44. KNOWLEDGE_PROBLEM = "KNOWLEDGE_PROBLEM"
  45. SYSTEM_KNOWLEDGE_PROBLEM = "SYSTEM_KNOWLEDGE_PROBLEM"
  46. SYSTEM_RES_KNOWLEDGE_PROBLEM = "SYSTEM_RESOURCE_KNOWLEDGE_PROBLEM"
  47. SYSTEM_KNOWLEDGE_HIT_TEST = "SYSTEM_KNOWLEDGE_HIT_TEST"
  48. SYSTEM_RES_KNOWLEDGE_HIT_TEST = "SYSTEM_RESOURCE_KNOWLEDGE_HIT_TEST"
  49. SYSTEM_KNOWLEDGE_CHAT_USER = "SYSTEM_KNOWLEDGE_CHAT_USER"
  50. SYSTEM_RES_KNOWLEDGE_CHAT_USER = "SYSTEM_RESOURCE_KNOWLEDGE_CHAT_USER"
  51. MODEL = "MODEL"
  52. SYSTEM_MODEL = "SYSTEM_MODEL"
  53. SYSTEM_RES_MODEL = "SYSTEM_RESOURCE_MODEL"
  54. SYSTEM_RES_APPLICATION = "SYSTEM_RESOURCE_APPLICATION"
  55. SYSTEM_RES_APPLICATION_OVERVIEW = "SYSTEM_RESOURCE_APPLICATION_OVERVIEW"
  56. SYSTEM_RES_APPLICATION_ACCESS = "SYSTEM_RESOURCE_APPLICATION_ACCESS"
  57. SYSTEM_RES_APPLICATION_CHAT_USER = "SYSTEM_RESOURCE_APPLICATION_CHAT_USER"
  58. SYSTEM_RES_APPLICATION_CHAT_LOG = "SYSTEM_RESOURCE_APPLICATION_CHAT_LOG"
  59. TOOL = "TOOL"
  60. SYSTEM_TOOL = "SYSTEM_TOOL"
  61. SYSTEM_RES_TOOL = "SYSTEM_RESOURCE_TOOL"
  62. TRIGGER = "TRIGGER"
  63. APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION = "APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION"
  64. KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION = "KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION"
  65. TOOL_WORKSPACE_USER_RESOURCE_PERMISSION = "TOOL_WORKSPACE_USER_RESOURCE_PERMISSION"
  66. MODEL_WORKSPACE_USER_RESOURCE_PERMISSION = "MODEL_WORKSPACE_USER_RESOURCE_PERMISSION"
  67. EMAIL_SETTING = "EMAIL_SETTING"
  68. ROLE = "ROLE"
  69. WORKSPACE_ROLE = "WORKSPACE_ROLE"
  70. WORKSPACE = "WORKSPACE"
  71. WORKSPACE_WORKSPACE = "WORKSPACE_WORKSPACE"
  72. DISPLAY_SETTINGS = "DISPLAY_SETTINGS"
  73. LOGIN_AUTH = "LOGIN_AUTH"
  74. SYSTEM_API_KEY = "SYSTEM_API_KEY"
  75. APPEARANCE_SETTINGS = "APPEARANCE_SETTINGS"
  76. CHAT_USER = "CHAT_USER"
  77. WORKSPACE_CHAT_USER = "WORKSPACE_CHAT_USER"
  78. USER_GROUP = "USER_GROUP"
  79. WORKSPACE_USER_GROUP = "WORKSPACE_USER_GROUP"
  80. CHAT_USER_AUTH = "CHAT_USER_AUTH"
  81. OTHER = "OTHER"
  82. OVERVIEW = "OVERVIEW"
  83. OPERATION_LOG = "OPERATION_LOG"
  84. APPLICATION_FOLDER = "APPLICATION_FOLDER"
  85. KNOWLEDGE_FOLDER = "KNOWLEDGE_FOLDER"
  86. TOOL_FOLDER = "TOOL_FOLDER"
  87. class SystemGroup(Enum):
  88. """
  89. 一级菜单
  90. """
  91. USER_MANAGEMENT = "USER_MANAGEMENT"
  92. ROLE = "ROLE"
  93. WORKSPACE = "WORKSPACE"
  94. # RESOURCE = "RESOURCE"
  95. RESOURCE_APPLICATION = "RESOURCE_APPLICATION"
  96. RESOURCE_KNOWLEDGE = "RESOURCE_KNOWLEDGE"
  97. RESOURCE_TOOL = "RESOURCE_TOOL"
  98. RESOURCE_MODEL = "RESOURCE_MODEL"
  99. RESOURCE_PERMISSION = "RESOURCE_PERMISSION"
  100. SHARED_KNOWLEDGE = "SHARED_KNOWLEDGE"
  101. SHARED_MODEL = "SHARED_MODEL"
  102. SHARED_TOOL = "SHARED_TOOL"
  103. CHAT_USER = "CHAT_USER"
  104. SYSTEM_SETTING = "SYSTEM_SETTING"
  105. OPERATION_LOG = "OPERATION_LOG"
  106. OTHER = "OTHER"
  107. class WorkspaceGroup(Enum):
  108. SYSTEM_MANAGEMENT = "SYSTEM_MANAGEMENT"
  109. APPLICATION = "APPLICATION"
  110. KNOWLEDGE = "KNOWLEDGE"
  111. MODEL = "MODEL"
  112. TOOL = "TOOL"
  113. TRIGGER = "TRIGGER"
  114. RESOURCE_PERMISSION = "RESOURCE_PERMISSION"
  115. OTHER = "OTHER"
  116. class UserGroup(Enum):
  117. APPLICATION = "APPLICATION"
  118. KNOWLEDGE = "KNOWLEDGE"
  119. MODEL = "MODEL"
  120. TOOL = "TOOL"
  121. OTHER = "OTHER"
  122. class Operate(Enum):
  123. """
  124. 一个权限组的操作权限
  125. """
  126. SELF = ""
  127. READ = 'READ'
  128. EDIT = "READ+EDIT"
  129. CREATE = "READ+CREATE"
  130. DELETE = "READ+DELETE"
  131. """
  132. 使用权限
  133. """
  134. USE = "USE"
  135. IMPORT = "READ+IMPORT"
  136. EXPORT = "READ+EXPORT" # 导入导出
  137. SYNC = "READ+SYNC" # 同步
  138. GENERATE = "READ+GENERATE" # 生成
  139. ADD_MEMBER = "READ+ADD_MEMBER" # 添加成员
  140. REMOVE_MEMBER = "READ+REMOVE_MEMBER" # 添加成员
  141. VECTOR = "READ+VECTOR" # 向量化
  142. MIGRATE = "READ+MIGRATE" # 迁移
  143. RELATE = "READ+RELATE" # 关联
  144. USER_GROUP = "READ+USER_GROUP" # 用户组
  145. ANNOTATION = "READ+ANNOTATION" # 标注
  146. CLEAR_POLICY = "READ+CLEAR_POLICY"
  147. EMBED = "READ+EMBED" # 嵌入
  148. ACCESS = "READ+ACCESS" # 访问限制
  149. DISPLAY = "READ+DISPLAY" # 显示设置
  150. API_KEY = "READ+API_KEY" # API_KEY
  151. PUBLIC_ACCESS = "READ+PUBLIC_ACCESS" # 公共访问链接
  152. Q_WEIXIN = "READ+Q_WEIXIN" # 企业微信
  153. FEISHU = "READ+FEISHU" # 飞书
  154. DD = "READ+DD" # 钉钉
  155. WEIXIN_PUBLIC_ACCOUNT = "READ+WEIXIN_PUBLIC_ACCOUNT" # 微信公众号
  156. SLACK = "READ+SLACK" # SLACK
  157. ADD_KNOWLEDGE = "READ+ADD_KNOWLEDGE" # 添加到知识库
  158. TO_CHAT = "READ+TO_CHAT" # 去对话
  159. SETTING = "READ+SETTING" # 管理
  160. DOWNLOAD = "READ+DOWNLOAD" # 下载
  161. AUTH = "READ+AUTH" # 资源授权
  162. TAG = "READ+TAG" # 标签设置
  163. REPLACE = "READ+REPLACE" # 标签设置
  164. UPDATE = "READ+UPDATE" # 更新license
  165. RELATE_VIEW = "READ+RELATE_VIEW"
  166. RECORD = "READ+RECORD"
  167. TRIGGER_READ = "READ+TRIGGER_READ"
  168. TRIGGER_EDIT = "READ+TRIGGER_EDIT"
  169. TRIGGER_CREATE = "READ+TRIGGER_CREATE"
  170. TRIGGER_DELETE = "READ+TRIGGER_DELETE"
  171. BATCH_DELETE = "READ+BATCH_DELETE"
  172. BATCH_MOVE = "READ+BATCH_MOVE"
  173. class RoleGroup(Enum):
  174. # 系统用户
  175. SYSTEM_USER = "SYSTEM_USER"
  176. # 对话用户
  177. CHAT_USER = "CHAT_USER"
  178. class ResourcePermissionRole(models.TextChoices):
  179. """
  180. 资源权限根据角色
  181. """
  182. ROLE = "ROLE"
  183. def __eq__(self, other):
  184. return str(self) == str(other)
  185. class ResourcePermission(models.TextChoices):
  186. """
  187. 资源权限组
  188. """
  189. # 查看
  190. VIEW = "VIEW"
  191. # 管理
  192. MANAGE = "MANAGE"
  193. def __eq__(self, other):
  194. return str(self) == str(other)
  195. class Resource(models.TextChoices):
  196. KNOWLEDGE = Group.KNOWLEDGE.value
  197. KNOWLEDGE_FOLDER = Group.KNOWLEDGE_FOLDER.value
  198. APPLICATION = Group.APPLICATION.value
  199. APPLICATION_FOLDER = Group.APPLICATION_FOLDER.value
  200. TOOL = Group.TOOL.value
  201. TOOL_FOLDER = Group.TOOL_FOLDER.value
  202. MODEL = Group.MODEL.value
  203. def __eq__(self, other):
  204. return str(self) == str(other)
  205. class ResourcePermissionGroup:
  206. def __init__(self, resource: Resource, permission: ResourcePermission):
  207. self.permission = permission
  208. self.resource = resource
  209. def __eq__(self, other):
  210. return str(self.permission) == str(other.permission) and str(self.resource) == str(other.resource)
  211. class ResourcePermissionConst:
  212. KNOWLEDGE_MANGE = ResourcePermissionGroup(Resource.KNOWLEDGE, ResourcePermission.MANAGE)
  213. KNOWLEDGE_FOLDER_MANGE = ResourcePermissionGroup(Resource.KNOWLEDGE_FOLDER, ResourcePermission.MANAGE)
  214. KNOWLEDGE_FOLDER_VIEW = ResourcePermissionGroup(Resource.KNOWLEDGE_FOLDER, ResourcePermission.VIEW)
  215. KNOWLEDGE_VIEW = ResourcePermissionGroup(Resource.KNOWLEDGE, ResourcePermission.VIEW)
  216. APPLICATION_MANGE = ResourcePermissionGroup(Resource.APPLICATION, ResourcePermission.MANAGE)
  217. APPLICATION_FOLDER_MANGE = ResourcePermissionGroup(Resource.APPLICATION_FOLDER, ResourcePermission.MANAGE)
  218. APPLICATION_FOLDER_VIEW = ResourcePermissionGroup(Resource.APPLICATION_FOLDER, ResourcePermission.VIEW)
  219. APPLICATION_VIEW = ResourcePermissionGroup(Resource.APPLICATION, ResourcePermission.VIEW)
  220. TOOL_MANGE = ResourcePermissionGroup(Resource.TOOL, ResourcePermission.MANAGE)
  221. TOOL_FOLDER_MANGE = ResourcePermissionGroup(Resource.TOOL_FOLDER, ResourcePermission.MANAGE)
  222. TOOL_FOLDER_VIEW = ResourcePermissionGroup(Resource.TOOL_FOLDER, ResourcePermission.VIEW)
  223. TOOL_VIEW = ResourcePermissionGroup(Resource.TOOL, ResourcePermission.VIEW)
  224. MODEL_MANGE = ResourcePermissionGroup(Resource.MODEL, ResourcePermission.MANAGE)
  225. MODEL_VIEW = ResourcePermissionGroup(Resource.MODEL, ResourcePermission.VIEW)
  226. class ResourceAuthType(models.TextChoices):
  227. """
  228. 资源授权类型
  229. """
  230. "当授权类型是Role时候"
  231. ROLE = "ROLE"
  232. """资源权限组"""
  233. RESOURCE_PERMISSION_GROUP = "RESOURCE_PERMISSION_GROUP"
  234. class Role:
  235. def __init__(self, name: str, decs: str, group: RoleGroup, resource_path=None):
  236. self.name = name
  237. self.decs = decs
  238. self.group = group
  239. self.resource_path = resource_path
  240. def __str__(self):
  241. return self.name + (
  242. (":" + self.resource_path) if self.resource_path is not None else '')
  243. def __eq__(self, other):
  244. return str(self) == str(other)
  245. def get_workspace_role(self):
  246. return lambda r, kwargs: Role(self.name, self.decs, self.group,
  247. resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}")
  248. class RoleConstants(Enum):
  249. ADMIN = Role("ADMIN", '超级管理员', RoleGroup.SYSTEM_USER)
  250. WORKSPACE_MANAGE = Role("WORKSPACE_MANAGE", '工作空间管理员', RoleGroup.SYSTEM_USER)
  251. USER = Role("USER", '普通用户', RoleGroup.SYSTEM_USER)
  252. CHAT_ANONYMOUS_USER = Role("CHAT_ANONYMOUS_USER", "对话匿名用户", RoleGroup.CHAT_USER)
  253. CHAT_USER = Role("CHAT_USER", "对话用户", RoleGroup.CHAT_USER)
  254. EXTENDS_ADMIN = Role("EXTENDS_ADMIN", '继承超级管理员', RoleGroup.SYSTEM_USER)
  255. EXTENDS_WORKSPACE_MANAGE = Role("EXTENDS_WORKSPACE_MANAGE", "继承工作空间管理员", RoleGroup.CHAT_USER)
  256. EXTENDS_USER = Role("EXTENDS_USER", "继承普通用户", RoleGroup.CHAT_USER)
  257. def get_workspace_role(self):
  258. return lambda r, kwargs: Role(name=self.value.name,
  259. decs=self.value.decs,
  260. group=self.value.group,
  261. resource_path=
  262. f"/WORKSPACE/{kwargs.get('workspace_id')}")
  263. Permission_Label = {
  264. SystemGroup.SYSTEM_SETTING.value: _("System Setting"),
  265. SystemGroup.USER_MANAGEMENT.value: _("User Management"),
  266. SystemGroup.ROLE.value: _("Role"),
  267. SystemGroup.WORKSPACE.value: _("Workspace"),
  268. SystemGroup.RESOURCE_APPLICATION.value: _("Resource Application"),
  269. SystemGroup.RESOURCE_KNOWLEDGE.value: _("Resource Knowledge"),
  270. SystemGroup.RESOURCE_TOOL.value: _("Resource Tool"),
  271. SystemGroup.RESOURCE_MODEL.value: _("Resource Model"),
  272. SystemGroup.RESOURCE_PERMISSION.value: _("Resource Permission"),
  273. SystemGroup.SHARED_KNOWLEDGE.value: _("Shared Knowledge"),
  274. SystemGroup.SHARED_MODEL.value: _("Shared Model"),
  275. SystemGroup.SHARED_TOOL.value: _("Shared Tool"),
  276. SystemGroup.OPERATION_LOG.value: _("Operation Log"),
  277. SystemGroup.OTHER.value: _("Other"),
  278. WorkspaceGroup.SYSTEM_MANAGEMENT.value: _("System Management"),
  279. WorkspaceGroup.APPLICATION.value: _("Application"),
  280. WorkspaceGroup.KNOWLEDGE.value: _("Knowledge"),
  281. WorkspaceGroup.MODEL.value: _("Model"),
  282. WorkspaceGroup.TOOL.value: _("Tool"),
  283. WorkspaceGroup.TRIGGER.value: _("Trigger"),
  284. WorkspaceGroup.OTHER.value: _("Other"),
  285. Operate.READ.value: _("Read"),
  286. Operate.EDIT.value: _("Edit"),
  287. Operate.CREATE.value: _("Create"),
  288. Operate.DELETE.value: _("Delete"),
  289. Group.EMAIL_SETTING.value: _("Email Setting"),
  290. Group.APPLICATION.value: _("Application"),
  291. Group.KNOWLEDGE.value: _("Knowledge"),
  292. Group.KNOWLEDGE_DOCUMENT.value: _("Document"),
  293. Group.KNOWLEDGE_WORKFLOW.value: _("Workflow"),
  294. Group.KNOWLEDGE_TAG.value: _("Tag"),
  295. Group.KNOWLEDGE_PROBLEM.value: _("Problem"),
  296. Group.KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
  297. Operate.IMPORT.value: _("Import"),
  298. Operate.EXPORT.value: _("Export"),
  299. Operate.SYNC.value: _("Sync"),
  300. Operate.GENERATE.value: _("Generate"),
  301. Operate.ADD_MEMBER.value: _("Add Member"),
  302. Operate.REMOVE_MEMBER.value: _("Remove Member"),
  303. Operate.VECTOR.value: _("Vector"),
  304. Operate.MIGRATE.value: _("Migrate"),
  305. Operate.RELATE.value: _("Relate"),
  306. Operate.ANNOTATION.value: _("Annotation"),
  307. Operate.CLEAR_POLICY.value: _("Clear Policy"),
  308. Operate.DOWNLOAD.value: _('Download Original Document'),
  309. Operate.EMBED.value: _('Embed third party'),
  310. Operate.ACCESS.value: _('Access restrictions'),
  311. Operate.DISPLAY.value: _('Display Settings'),
  312. Operate.API_KEY.value: _('API KEY'),
  313. Operate.PUBLIC_ACCESS.value: _('Public access link'),
  314. Operate.Q_WEIXIN.value: _('Enterprise WeiXin'),
  315. Operate.FEISHU.value: _('Feishu'),
  316. Operate.DD.value: _('Dingding'),
  317. Operate.WEIXIN_PUBLIC_ACCOUNT.value: _('Weixin Public Account'),
  318. Operate.ADD_KNOWLEDGE.value: _('Add to Knowledge Base'),
  319. Operate.AUTH.value: _('resource authorization'),
  320. Operate.TAG.value: _('Tag Setting'),
  321. Operate.REPLACE.value: _('Replace Original Document'),
  322. Operate.RELATE_VIEW.value: _('View related resources'),
  323. Operate.TRIGGER_READ.value: _('Read Trigger'),
  324. Operate.TRIGGER_CREATE.value: _('Create Trigger'),
  325. Operate.TRIGGER_EDIT.value: _('Edit Trigger'),
  326. Operate.TRIGGER_DELETE.value: _('Delete Trigger'),
  327. Operate.RECORD.value: _('Read execute record'),
  328. Operate.BATCH_DELETE.value: _('Batch delete'),
  329. Operate.BATCH_MOVE.value: _('Batch move'),
  330. Group.APPLICATION_OVERVIEW.value: _('Overview'),
  331. Group.APPLICATION_ACCESS.value: _('Application Access'),
  332. Group.APPLICATION_CHAT_USER.value: _('Dialogue users'),
  333. Group.APPLICATION_CHAT_LOG.value: _('Conversation log'),
  334. Group.KNOWLEDGE_CHAT_USER.value: _('Dialogue users'),
  335. Group.LOGIN_AUTH.value: _("Login Auth"),
  336. Group.DISPLAY_SETTINGS.value: _("Display Settings"),
  337. Group.SYSTEM_API_KEY.value: _("System API Key"),
  338. Group.APPEARANCE_SETTINGS.value: _("Appearance Settings"),
  339. Group.CHAT_USER.value: _("Chat User"),
  340. Group.USER_GROUP.value: _("User Group"),
  341. Group.CHAT_USER_AUTH.value: _("Chat User Auth"),
  342. Group.OVERVIEW.value: _("Overview"),
  343. Group.SYSTEM_TOOL.value: _("Tool"),
  344. Group.SYSTEM_MODEL.value: _("Model"),
  345. Group.SYSTEM_KNOWLEDGE.value: _("Knowledge"),
  346. Group.SYSTEM_KNOWLEDGE_DOCUMENT.value: _("Document"),
  347. Group.SYSTEM_KNOWLEDGE_WORKFLOW.value: _("Workflow"),
  348. Group.SYSTEM_KNOWLEDGE_TAG.value: _("Tag"),
  349. Group.SYSTEM_KNOWLEDGE_PROBLEM.value: _("Problem"),
  350. Group.SYSTEM_KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
  351. Group.SYSTEM_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
  352. Group.SYSTEM_RES_TOOL.value: _("Tool"),
  353. Group.SYSTEM_RES_MODEL.value: _("Model"),
  354. Group.SYSTEM_RES_KNOWLEDGE.value: _("Knowledge"),
  355. Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT.value: _("Document"),
  356. Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW.value: _("Workflow"),
  357. Group.SYSTEM_RES_KNOWLEDGE_TAG.value: _("Tag"),
  358. Group.SYSTEM_RES_KNOWLEDGE_PROBLEM.value: _("Problem"),
  359. Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST.value: _("Hit-Test"),
  360. Group.SYSTEM_RES_KNOWLEDGE_CHAT_USER.value: _("Dialogue users"),
  361. Group.WORKSPACE_USER_GROUP.value: _("User Group"),
  362. Group.WORKSPACE_CHAT_USER.value: _("Chat User"),
  363. Group.WORKSPACE_WORKSPACE.value: _("Workspace"),
  364. Group.WORKSPACE_ROLE.value: _("Role"),
  365. Group.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION.value: _("Application"),
  366. Group.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION.value: _("Knowledge"),
  367. Group.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION.value: _("Model"),
  368. Group.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION.value: _("Tool"),
  369. Group.SYSTEM_RES_APPLICATION.value: _("Application"),
  370. Group.SYSTEM_RES_APPLICATION_OVERVIEW.value: _("Overview"),
  371. Group.SYSTEM_RES_APPLICATION_ACCESS.value: _("Application Access"),
  372. Group.SYSTEM_RES_APPLICATION_CHAT_USER.value: _("Dialogue users"),
  373. Group.SYSTEM_RES_APPLICATION_CHAT_LOG.value: _("Conversation log"),
  374. Group.APPLICATION_FOLDER.value: _("Folder"),
  375. Group.KNOWLEDGE_FOLDER.value: _("Folder"),
  376. Group.TOOL_FOLDER.value: _("Folder"),
  377. # SystemGroup.RESOURCE.value: _("Resource"),
  378. }
  379. class Permission:
  380. """
  381. 权限信息
  382. """
  383. def __init__(self, group: Group, operate: Operate, resource_path=None, role_list=None,
  384. resource_permission_group_list=None, parent_group=None, label=None, is_ee=True):
  385. if role_list is None:
  386. role_list = []
  387. if resource_permission_group_list is None:
  388. resource_permission_group_list = []
  389. self.group = group
  390. self.operate = operate
  391. self.resource_path = resource_path
  392. # 用于获取角色与权限的关系,只适用于没有权限管理的
  393. self.role_list = role_list
  394. # 用于资源权限权限分组
  395. self.resource_permission_group_list = resource_permission_group_list
  396. self.parent_group = parent_group # 新增字段:父级组
  397. self.label = label
  398. self.is_ee = is_ee # 是否是企业版权限
  399. @staticmethod
  400. def new_instance(permission_str: str):
  401. permission_split = permission_str.split(":")
  402. group = Group[permission_split[0]]
  403. operate = Operate[permission_split[1]]
  404. if len(permission_split) > 2:
  405. dynamic_tag = ":".join(permission_split[2:])
  406. return Permission(group, operate, dynamic_tag)
  407. return Permission(group, operate)
  408. def __str__(self):
  409. return self.group.value + (
  410. (":" + self.operate.value) if self.operate.value else '') + (
  411. (":" + self.resource_path) if self.resource_path is not None else '')
  412. def __eq__(self, other):
  413. return str(self) == str(other)
  414. class PermissionConstants(Enum):
  415. """
  416. 权限枚举
  417. """
  418. KNOWLEDGE = Permission(
  419. group=Group.KNOWLEDGE, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER]
  420. )
  421. APPLICATION = Permission(
  422. group=Group.APPLICATION, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  423. )
  424. MODEL = Permission(
  425. group=Group.MODEL, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  426. )
  427. TOOL = Permission(
  428. group=Group.TOOL, operate=Operate.SELF, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  429. )
  430. USER_READ = Permission(
  431. group=Group.USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  432. parent_group=[SystemGroup.USER_MANAGEMENT]
  433. )
  434. USER_CREATE = Permission(
  435. group=Group.USER, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  436. parent_group=[SystemGroup.USER_MANAGEMENT]
  437. )
  438. USER_EDIT = Permission(
  439. group=Group.USER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  440. parent_group=[SystemGroup.USER_MANAGEMENT]
  441. )
  442. USER_DELETE = Permission(
  443. group=Group.USER, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  444. parent_group=[SystemGroup.USER_MANAGEMENT]
  445. )
  446. MODEL_READ = Permission(
  447. group=Group.MODEL, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  448. parent_group=[WorkspaceGroup.MODEL, UserGroup.MODEL],
  449. resource_permission_group_list=[ResourcePermissionConst.MODEL_VIEW]
  450. )
  451. MODEL_CREATE = Permission(
  452. group=Group.MODEL, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  453. parent_group=[WorkspaceGroup.MODEL, UserGroup.MODEL],
  454. resource_permission_group_list=[ResourcePermissionConst.MODEL_MANGE]
  455. )
  456. MODEL_EDIT = Permission(
  457. group=Group.MODEL, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  458. parent_group=[WorkspaceGroup.MODEL, UserGroup.MODEL],
  459. resource_permission_group_list=[ResourcePermissionConst.MODEL_MANGE]
  460. )
  461. MODEL_DELETE = Permission(
  462. group=Group.MODEL, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  463. parent_group=[WorkspaceGroup.MODEL, UserGroup.MODEL],
  464. resource_permission_group_list=[ResourcePermissionConst.MODEL_MANGE]
  465. )
  466. MODEL_RESOURCE_AUTHORIZATION = Permission(
  467. group=Group.MODEL, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  468. parent_group=[WorkspaceGroup.MODEL, UserGroup.MODEL],
  469. resource_permission_group_list=[ResourcePermissionConst.MODEL_MANGE]
  470. )
  471. MODEL_RELATE_RESOURCE_VIEW = Permission(
  472. group=Group.MODEL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  473. parent_group=[WorkspaceGroup.MODEL, UserGroup.MODEL],
  474. resource_permission_group_list=[ResourcePermissionConst.MODEL_MANGE]
  475. )
  476. # trigger
  477. TRIGGER_READ = Permission(
  478. group=Group.TRIGGER, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  479. parent_group=[WorkspaceGroup.TRIGGER],
  480. )
  481. TRIGGER_CREATE = Permission(
  482. group=Group.TRIGGER, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  483. parent_group=[WorkspaceGroup.TRIGGER],
  484. )
  485. TRIGGER_EDIT = Permission(
  486. group=Group.TRIGGER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  487. parent_group=[WorkspaceGroup.TRIGGER],
  488. )
  489. TRIGGER_DELETE = Permission(
  490. group=Group.TRIGGER, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  491. parent_group=[WorkspaceGroup.TRIGGER],
  492. )
  493. TRIGGER_RECORD = Permission(
  494. group=Group.TRIGGER, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN],
  495. parent_group=[WorkspaceGroup.TRIGGER],
  496. )
  497. TOOL_READ = Permission(
  498. group=Group.TOOL, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  499. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  500. resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
  501. )
  502. TOOL_CREATE = Permission(
  503. group=Group.TOOL, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  504. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  505. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  506. )
  507. TOOL_BATCH_MOVE = Permission(
  508. group=Group.TOOL, operate=Operate.BATCH_MOVE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  509. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  510. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  511. )
  512. TOOL_BATCH_DELETE = Permission(
  513. group=Group.TOOL, operate=Operate.BATCH_DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  514. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  515. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  516. )
  517. TOOL_EDIT = Permission(
  518. group=Group.TOOL, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  519. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  520. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  521. )
  522. TOOL_DELETE = Permission(
  523. group=Group.TOOL, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  524. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  525. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  526. )
  527. TOOL_IMPORT = Permission(
  528. group=Group.TOOL, operate=Operate.IMPORT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  529. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  530. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  531. )
  532. TOOL_EXPORT = Permission(
  533. group=Group.TOOL, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  534. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  535. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  536. )
  537. TOOL_RESOURCE_AUTHORIZATION = Permission(
  538. group=Group.TOOL, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  539. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  540. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  541. )
  542. TOOL_RELATE_RESOURCE_VIEW = Permission(
  543. group=Group.TOOL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  544. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  545. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  546. )
  547. TOOL_EXECUTE_RECORD = Permission(
  548. group=Group.TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  549. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  550. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  551. )
  552. # source point trigger
  553. TOOL_TRIGGER_READ = Permission(
  554. group=Group.TOOL, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  555. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  556. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  557. )
  558. TOOL_TRIGGER_CREATE = Permission(
  559. group=Group.TOOL, operate=Operate.TRIGGER_CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  560. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  561. resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
  562. )
  563. TOOL_TRIGGER_EDIT = Permission(
  564. group=Group.TOOL, operate=Operate.TRIGGER_EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  565. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  566. resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
  567. )
  568. TOOL_TRIGGER_DELETE = Permission(
  569. group=Group.TOOL, operate=Operate.TRIGGER_DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  570. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  571. resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
  572. )
  573. TOOL_FOLDER_READ = Permission(
  574. group=Group.TOOL_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  575. parent_group=[UserGroup.TOOL],
  576. resource_permission_group_list=[ResourcePermissionConst.TOOL_VIEW]
  577. )
  578. TOOL_FOLDER_CREATE = Permission(
  579. group=Group.TOOL_FOLDER, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  580. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  581. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  582. )
  583. TOOL_FOLDER_EDIT = Permission(
  584. group=Group.TOOL_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  585. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  586. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  587. )
  588. TOOL_FOLDER_DELETE = Permission(
  589. group=Group.TOOL_FOLDER, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  590. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  591. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  592. )
  593. TOOL_FOLDER_AUTH = Permission(
  594. group=Group.TOOL_FOLDER, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  595. parent_group=[WorkspaceGroup.TOOL, UserGroup.TOOL],
  596. resource_permission_group_list=[ResourcePermissionConst.TOOL_MANGE]
  597. )
  598. KNOWLEDGE_READ = Permission(
  599. group=Group.KNOWLEDGE, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  600. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  601. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  602. )
  603. KNOWLEDGE_CREATE = Permission(
  604. group=Group.KNOWLEDGE, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  605. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  606. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  607. )
  608. KNOWLEDGE_EDIT = Permission(
  609. group=Group.KNOWLEDGE, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  610. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  611. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  612. )
  613. KNOWLEDGE_DELETE = Permission(
  614. group=Group.KNOWLEDGE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  615. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  616. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  617. )
  618. KNOWLEDGE_SYNC = Permission(
  619. group=Group.KNOWLEDGE, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  620. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  621. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  622. )
  623. KNOWLEDGE_EXPORT = Permission(
  624. group=Group.KNOWLEDGE, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  625. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  626. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  627. )
  628. KNOWLEDGE_VECTOR = Permission(
  629. group=Group.KNOWLEDGE, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  630. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  631. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  632. )
  633. KNOWLEDGE_GENERATE = Permission(
  634. group=Group.KNOWLEDGE, operate=Operate.GENERATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  635. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  636. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  637. )
  638. KNOWLEDGE_BATCH_DELETE = Permission(group=Group.KNOWLEDGE, operate=Operate.BATCH_DELETE,
  639. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  640. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  641. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE],
  642. )
  643. KNOWLEDGE_BATCH_MOVE = Permission(group=Group.KNOWLEDGE, operate=Operate.BATCH_MOVE,
  644. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  645. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  646. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE],
  647. )
  648. KNOWLEDGE_RESOURCE_AUTHORIZATION = Permission(
  649. group=Group.KNOWLEDGE, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  650. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  651. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  652. )
  653. KNOWLEDGE_RELATE_RESOURCE_VIEW = Permission(
  654. group=Group.KNOWLEDGE, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  655. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE],
  656. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE]
  657. )
  658. KNOWLEDGE_FOLDER_READ = Permission(
  659. group=Group.KNOWLEDGE_FOLDER, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  660. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  661. parent_group=[UserGroup.KNOWLEDGE]
  662. )
  663. KNOWLEDGE_FOLDER_CREATE = Permission(
  664. group=Group.KNOWLEDGE_FOLDER, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  665. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  666. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  667. )
  668. KNOWLEDGE_FOLDER_EDIT = Permission(
  669. group=Group.KNOWLEDGE_FOLDER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  670. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  671. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  672. )
  673. KNOWLEDGE_FOLDER_DELETE = Permission(
  674. group=Group.KNOWLEDGE_FOLDER, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  675. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  676. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  677. )
  678. KNOWLEDGE_FOLDER_AUTH = Permission(
  679. group=Group.KNOWLEDGE_FOLDER, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  680. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  681. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  682. )
  683. KNOWLEDGE_WORKFLOW_READ = Permission(
  684. group=Group.KNOWLEDGE_WORKFLOW, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  685. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  686. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  687. )
  688. KNOWLEDGE_WORKFLOW_EDIT = Permission(
  689. group=Group.KNOWLEDGE_WORKFLOW, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  690. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  691. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  692. )
  693. KNOWLEDGE_WORKFLOW_EXPORT = Permission(
  694. group=Group.KNOWLEDGE_WORKFLOW, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  695. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  696. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  697. )
  698. KNOWLEDGE_DOCUMENT_READ = Permission(
  699. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.READ,
  700. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  701. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  702. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  703. )
  704. KNOWLEDGE_DOCUMENT_CREATE = Permission(
  705. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.CREATE,
  706. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  707. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  708. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  709. )
  710. KNOWLEDGE_DOCUMENT_EDIT = Permission(
  711. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  712. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  713. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  714. )
  715. KNOWLEDGE_DOCUMENT_DELETE = Permission(
  716. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  717. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  718. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  719. )
  720. KNOWLEDGE_DOCUMENT_SYNC = Permission(
  721. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  722. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  723. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  724. )
  725. KNOWLEDGE_DOCUMENT_EXPORT = Permission(
  726. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.EXPORT,
  727. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  728. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  729. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  730. )
  731. KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE = Permission(
  732. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.DOWNLOAD,
  733. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  734. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  735. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  736. )
  737. KNOWLEDGE_DOCUMENT_GENERATE = Permission(
  738. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.GENERATE,
  739. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  740. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  741. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  742. )
  743. KNOWLEDGE_DOCUMENT_VECTOR = Permission(
  744. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.VECTOR,
  745. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  746. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  747. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  748. )
  749. KNOWLEDGE_DOCUMENT_MIGRATE = Permission(
  750. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE,
  751. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  752. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  753. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  754. )
  755. KNOWLEDGE_DOCUMENT_TAG = Permission(
  756. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.TAG,
  757. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  758. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  759. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  760. )
  761. KNOWLEDGE_DOCUMENT_REPLACE = Permission(
  762. group=Group.KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE,
  763. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  764. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  765. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  766. )
  767. KNOWLEDGE_HIT_TEST = Permission(
  768. group=Group.KNOWLEDGE_HIT_TEST, operate=Operate.READ,
  769. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  770. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  771. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  772. )
  773. KNOWLEDGE_PROBLEM_READ = Permission(
  774. group=Group.KNOWLEDGE_PROBLEM, operate=Operate.READ,
  775. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  776. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  777. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  778. )
  779. KNOWLEDGE_PROBLEM_CREATE = Permission(
  780. group=Group.KNOWLEDGE_PROBLEM, operate=Operate.CREATE,
  781. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  782. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  783. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  784. )
  785. KNOWLEDGE_PROBLEM_EDIT = Permission(
  786. group=Group.KNOWLEDGE_PROBLEM, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  787. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  788. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  789. )
  790. KNOWLEDGE_PROBLEM_DELETE = Permission(
  791. group=Group.KNOWLEDGE_PROBLEM, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  792. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  793. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  794. )
  795. KNOWLEDGE_PROBLEM_RELATE = Permission(
  796. group=Group.KNOWLEDGE_PROBLEM, operate=Operate.RELATE,
  797. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  798. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  799. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  800. )
  801. KNOWLEDGE_TAG_READ = Permission(
  802. group=Group.KNOWLEDGE_TAG, operate=Operate.READ,
  803. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  804. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  805. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  806. )
  807. KNOWLEDGE_TAG_CREATE = Permission(
  808. group=Group.KNOWLEDGE_TAG, operate=Operate.CREATE,
  809. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  810. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  811. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  812. )
  813. KNOWLEDGE_TAG_EDIT = Permission(
  814. group=Group.KNOWLEDGE_TAG, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  815. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  816. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  817. )
  818. KNOWLEDGE_TAG_DELETE = Permission(
  819. group=Group.KNOWLEDGE_TAG, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  820. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  821. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE]
  822. )
  823. APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_READ = Permission(
  824. group=Group.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.READ,
  825. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  826. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  827. )
  828. APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT = Permission(
  829. group=Group.APPLICATION_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.EDIT,
  830. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  831. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  832. )
  833. KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_READ = Permission(
  834. group=Group.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.READ,
  835. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  836. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  837. )
  838. KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT = Permission(
  839. group=Group.KNOWLEDGE_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.EDIT,
  840. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  841. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  842. )
  843. TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_READ = Permission(
  844. group=Group.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.READ,
  845. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  846. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  847. )
  848. TOOL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT = Permission(
  849. group=Group.TOOL_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.EDIT,
  850. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  851. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  852. )
  853. MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_READ = Permission(
  854. group=Group.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.READ,
  855. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  856. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  857. )
  858. MODEL_WORKSPACE_USER_RESOURCE_PERMISSION_EDIT = Permission(
  859. group=Group.MODEL_WORKSPACE_USER_RESOURCE_PERMISSION, operate=Operate.EDIT,
  860. role_list=[RoleConstants.ADMIN, RoleConstants.WORKSPACE_MANAGE],
  861. parent_group=[SystemGroup.RESOURCE_PERMISSION, WorkspaceGroup.RESOURCE_PERMISSION]
  862. )
  863. EMAIL_SETTING_READ = Permission(
  864. group=Group.EMAIL_SETTING, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  865. parent_group=[SystemGroup.SYSTEM_SETTING]
  866. )
  867. EMAIL_SETTING_EDIT = Permission(
  868. group=Group.EMAIL_SETTING, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  869. parent_group=[SystemGroup.SYSTEM_SETTING]
  870. )
  871. ROLE_READ = Permission(
  872. group=Group.ROLE, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  873. parent_group=[SystemGroup.ROLE]
  874. )
  875. ROLE_CREATE = Permission(
  876. group=Group.ROLE, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  877. parent_group=[SystemGroup.ROLE]
  878. )
  879. ROLE_EDIT = Permission(
  880. group=Group.ROLE, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  881. parent_group=[SystemGroup.ROLE]
  882. )
  883. ROLE_DELETE = Permission(
  884. group=Group.ROLE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  885. parent_group=[SystemGroup.ROLE]
  886. )
  887. ROLE_ADD_MEMBER = Permission(
  888. group=Group.ROLE, operate=Operate.ADD_MEMBER, role_list=[RoleConstants.ADMIN],
  889. parent_group=[SystemGroup.ROLE]
  890. )
  891. ROLE_REMOVE_MEMBER = Permission(
  892. group=Group.ROLE, operate=Operate.REMOVE_MEMBER, role_list=[RoleConstants.ADMIN],
  893. parent_group=[SystemGroup.ROLE]
  894. )
  895. WORKSPACE_ROLE_READ = Permission(
  896. group=Group.WORKSPACE_ROLE, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  897. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  898. )
  899. WORKSPACE_ROLE_ADD_MEMBER = Permission(
  900. group=Group.WORKSPACE_ROLE, operate=Operate.ADD_MEMBER, role_list=[RoleConstants.ADMIN],
  901. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  902. )
  903. WORKSPACE_ROLE_REMOVE_MEMBER = Permission(
  904. group=Group.WORKSPACE_ROLE, operate=Operate.REMOVE_MEMBER, role_list=[RoleConstants.ADMIN],
  905. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  906. )
  907. WORKSPACE_READ = Permission(
  908. group=Group.WORKSPACE, operate=Operate.READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  909. parent_group=[SystemGroup.WORKSPACE], is_ee=settings.edition == "EE"
  910. )
  911. WORKSPACE_CREATE = Permission(
  912. group=Group.WORKSPACE, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  913. parent_group=[SystemGroup.WORKSPACE], is_ee=settings.edition == "EE"
  914. )
  915. WORKSPACE_EDIT = Permission(
  916. group=Group.WORKSPACE, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  917. parent_group=[SystemGroup.WORKSPACE], is_ee=settings.edition == "EE"
  918. )
  919. WORKSPACE_DELETE = Permission(
  920. group=Group.WORKSPACE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  921. parent_group=[SystemGroup.WORKSPACE], is_ee=settings.edition == "EE"
  922. )
  923. WORKSPACE_ADD_MEMBER = Permission(
  924. group=Group.WORKSPACE, operate=Operate.ADD_MEMBER, role_list=[RoleConstants.ADMIN],
  925. parent_group=[SystemGroup.WORKSPACE], is_ee=settings.edition == "EE"
  926. )
  927. WORKSPACE_REMOVE_MEMBER = Permission(
  928. group=Group.WORKSPACE, operate=Operate.REMOVE_MEMBER, role_list=[RoleConstants.ADMIN],
  929. parent_group=[SystemGroup.WORKSPACE], is_ee=settings.edition == "EE"
  930. )
  931. WORKSPACE_WORKSPACE_READ = Permission(
  932. group=Group.WORKSPACE_WORKSPACE, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  933. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT], is_ee=settings.edition == "EE"
  934. )
  935. WORKSPACE_WORKSPACE_ADD_MEMBER = Permission(
  936. group=Group.WORKSPACE_WORKSPACE, operate=Operate.ADD_MEMBER, role_list=[RoleConstants.ADMIN],
  937. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT], is_ee=settings.edition == "EE"
  938. )
  939. WORKSPACE_WORKSPACE_REMOVE_MEMBER = Permission(
  940. group=Group.WORKSPACE_WORKSPACE, operate=Operate.REMOVE_MEMBER, role_list=[RoleConstants.ADMIN],
  941. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT], is_ee=settings.edition == "EE"
  942. )
  943. LOGIN_AUTH_READ = Permission(
  944. group=Group.LOGIN_AUTH, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  945. parent_group=[SystemGroup.SYSTEM_SETTING]
  946. )
  947. LOGIN_AUTH_EDIT = Permission(
  948. group=Group.LOGIN_AUTH, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  949. parent_group=[SystemGroup.SYSTEM_SETTING]
  950. )
  951. APPLICATION_READ = Permission(group=Group.APPLICATION, operate=Operate.READ,
  952. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  953. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  954. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
  955. )
  956. APPLICATION_CREATE = Permission(group=Group.APPLICATION, operate=Operate.CREATE,
  957. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  958. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  959. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  960. )
  961. APPLICATION_EDIT = Permission(group=Group.APPLICATION, operate=Operate.EDIT,
  962. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  963. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  964. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  965. )
  966. APPLICATION_DELETE = Permission(group=Group.APPLICATION, operate=Operate.DELETE,
  967. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  968. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  969. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  970. )
  971. APPLICATION_IMPORT = Permission(group=Group.APPLICATION, operate=Operate.IMPORT,
  972. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  973. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  974. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  975. )
  976. APPLICATION_EXPORT = Permission(group=Group.APPLICATION, operate=Operate.EXPORT,
  977. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  978. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  979. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  980. )
  981. APPLICATION_BATCH_DELETE = Permission(group=Group.APPLICATION, operate=Operate.BATCH_DELETE,
  982. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  983. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  984. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  985. )
  986. APPLICATION_BATCH_MOVE = Permission(group=Group.APPLICATION, operate=Operate.BATCH_MOVE,
  987. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  988. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  989. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  990. )
  991. APPLICATION_RESOURCE_AUTHORIZATION = Permission(group=Group.APPLICATION, operate=Operate.AUTH,
  992. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  993. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  994. resource_permission_group_list=[
  995. ResourcePermissionConst.APPLICATION_MANGE],
  996. )
  997. APPLICATION_TRIGGER_READ = Permission(
  998. group=Group.APPLICATION, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  999. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1000. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1001. )
  1002. APPLICATION_TRIGGER_CREATE = Permission(
  1003. group=Group.APPLICATION, operate=Operate.TRIGGER_CREATE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1004. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1005. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1006. )
  1007. APPLICATION_TRIGGER_EDIT = Permission(
  1008. group=Group.APPLICATION, operate=Operate.TRIGGER_EDIT, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1009. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1010. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1011. )
  1012. APPLICATION_TRIGGER_DELETE = Permission(
  1013. group=Group.APPLICATION, operate=Operate.TRIGGER_DELETE, role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1014. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1015. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1016. )
  1017. APPLICATION_FOLDER_READ = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.READ,
  1018. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1019. parent_group=[UserGroup.APPLICATION],
  1020. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW]
  1021. )
  1022. APPLICATION_FOLDER_CREATE = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.CREATE,
  1023. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1024. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1025. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1026. )
  1027. APPLICATION_FOLDER_EDIT = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.EDIT,
  1028. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1029. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1030. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1031. )
  1032. APPLICATION_FOLDER_DELETE = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.DELETE,
  1033. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1034. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1035. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1036. )
  1037. APPLICATION_FOLDER_AUTH = Permission(group=Group.APPLICATION_FOLDER, operate=Operate.AUTH,
  1038. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1039. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1040. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE]
  1041. )
  1042. APPLICATION_OVERVIEW_READ = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.READ,
  1043. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1044. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1045. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
  1046. )
  1047. APPLICATION_OVERVIEW_EMBED = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.EMBED,
  1048. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1049. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1050. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  1051. )
  1052. APPLICATION_OVERVIEW_ACCESS = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.ACCESS,
  1053. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1054. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1055. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  1056. )
  1057. APPLICATION_OVERVIEW_DISPLAY = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.DISPLAY,
  1058. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1059. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1060. resource_permission_group_list=[
  1061. ResourcePermissionConst.APPLICATION_MANGE],
  1062. )
  1063. APPLICATION_OVERVIEW_API_KEY = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.API_KEY,
  1064. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1065. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1066. resource_permission_group_list=[
  1067. ResourcePermissionConst.APPLICATION_MANGE],
  1068. )
  1069. APPLICATION_OVERVIEW_PUBLIC = Permission(group=Group.APPLICATION_OVERVIEW, operate=Operate.PUBLIC_ACCESS,
  1070. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1071. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1072. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  1073. )
  1074. # 应用接入
  1075. APPLICATION_ACCESS_READ = Permission(group=Group.APPLICATION_ACCESS, operate=Operate.READ,
  1076. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1077. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1078. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
  1079. )
  1080. APPLICATION_ACCESS_EDIT = Permission(group=Group.APPLICATION_ACCESS, operate=Operate.EDIT,
  1081. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1082. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1083. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE])
  1084. APPLICATION_CHAT_USER_READ = Permission(group=Group.APPLICATION_CHAT_USER, operate=Operate.READ,
  1085. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1086. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1087. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
  1088. )
  1089. APPLICATION_CHAT_USER_EDIT = Permission(group=Group.APPLICATION_CHAT_USER, operate=Operate.EDIT,
  1090. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1091. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1092. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  1093. )
  1094. KNOWLEDGE_CHAT_USER_READ = Permission(group=Group.KNOWLEDGE_CHAT_USER, operate=Operate.READ,
  1095. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1096. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE],
  1097. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_VIEW],
  1098. )
  1099. KNOWLEDGE_CHAT_USER_EDIT = Permission(group=Group.KNOWLEDGE_CHAT_USER, operate=Operate.EDIT,
  1100. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1101. parent_group=[WorkspaceGroup.KNOWLEDGE, UserGroup.KNOWLEDGE],
  1102. resource_permission_group_list=[ResourcePermissionConst.KNOWLEDGE_MANGE],
  1103. )
  1104. APPLICATION_CHAT_LOG_READ = Permission(group=Group.APPLICATION_CHAT_LOG, operate=Operate.READ,
  1105. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1106. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1107. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_VIEW],
  1108. )
  1109. APPLICATION_CHAT_LOG_ANNOTATION = Permission(group=Group.APPLICATION_CHAT_LOG, operate=Operate.ANNOTATION,
  1110. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1111. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1112. resource_permission_group_list=[
  1113. ResourcePermissionConst.APPLICATION_MANGE],
  1114. )
  1115. APPLICATION_CHAT_LOG_EXPORT = Permission(group=Group.APPLICATION_CHAT_LOG, operate=Operate.EXPORT,
  1116. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1117. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1118. resource_permission_group_list=[ResourcePermissionConst.APPLICATION_MANGE],
  1119. )
  1120. APPLICATION_CHAT_LOG_CLEAR_POLICY = Permission(group=Group.APPLICATION_CHAT_LOG, operate=Operate.CLEAR_POLICY,
  1121. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1122. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1123. resource_permission_group_list=[
  1124. ResourcePermissionConst.APPLICATION_MANGE],
  1125. )
  1126. APPLICATION_CHAT_LOG_ADD_KNOWLEDGE = Permission(group=Group.APPLICATION_CHAT_LOG, operate=Operate.ADD_KNOWLEDGE,
  1127. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1128. parent_group=[WorkspaceGroup.APPLICATION, UserGroup.APPLICATION],
  1129. resource_permission_group_list=[
  1130. ResourcePermissionConst.APPLICATION_MANGE],
  1131. )
  1132. ABOUT_READ = Permission(group=Group.OTHER, operate=Operate.READ,
  1133. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1134. parent_group=[SystemGroup.OTHER, WorkspaceGroup.OTHER, UserGroup.OTHER],
  1135. label=_('About')
  1136. )
  1137. ABOUT_UPDATE = Permission(group=Group.OTHER, operate=Operate.UPDATE,
  1138. role_list=[RoleConstants.ADMIN],
  1139. parent_group=[SystemGroup.OTHER],
  1140. label=_('Update License')
  1141. )
  1142. SWITCH_LANGUAGE = Permission(group=Group.OTHER, operate=Operate.EDIT,
  1143. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1144. parent_group=[SystemGroup.OTHER, WorkspaceGroup.OTHER, UserGroup.OTHER],
  1145. label=_('Switch Language')
  1146. )
  1147. CHANGE_PASSWORD = Permission(group=Group.OTHER, operate=Operate.CREATE,
  1148. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1149. parent_group=[SystemGroup.OTHER, WorkspaceGroup.OTHER, UserGroup.OTHER],
  1150. label=_('Change Password')
  1151. )
  1152. SYSTEM_API_KEY_EDIT = Permission(group=Group.OTHER, operate=Operate.DELETE,
  1153. role_list=[RoleConstants.ADMIN, RoleConstants.USER],
  1154. parent_group=[SystemGroup.OTHER, WorkspaceGroup.OTHER, UserGroup.OTHER],
  1155. label=_('System API Key')
  1156. )
  1157. APPEARANCE_SETTINGS_READ = Permission(group=Group.APPEARANCE_SETTINGS, operate=Operate.READ,
  1158. role_list=[RoleConstants.ADMIN],
  1159. parent_group=[SystemGroup.SYSTEM_SETTING]
  1160. )
  1161. APPEARANCE_SETTINGS_EDIT = Permission(group=Group.APPEARANCE_SETTINGS, operate=Operate.EDIT,
  1162. role_list=[RoleConstants.ADMIN],
  1163. parent_group=[SystemGroup.SYSTEM_SETTING]
  1164. )
  1165. CHAT_USER_READ = Permission(group=Group.CHAT_USER, operate=Operate.READ,
  1166. role_list=[RoleConstants.ADMIN],
  1167. parent_group=[SystemGroup.CHAT_USER],
  1168. )
  1169. CHAT_USER_CREATE = Permission(group=Group.CHAT_USER, operate=Operate.CREATE,
  1170. role_list=[RoleConstants.ADMIN],
  1171. parent_group=[SystemGroup.CHAT_USER]
  1172. )
  1173. CHAT_USER_SYNC = Permission(group=Group.CHAT_USER, operate=Operate.SYNC,
  1174. role_list=[RoleConstants.ADMIN],
  1175. parent_group=[SystemGroup.CHAT_USER]
  1176. )
  1177. CHAT_USER_EDIT = Permission(group=Group.CHAT_USER, operate=Operate.EDIT,
  1178. role_list=[RoleConstants.ADMIN],
  1179. parent_group=[SystemGroup.CHAT_USER]
  1180. )
  1181. CHAT_USER_DELETE = Permission(group=Group.CHAT_USER, operate=Operate.DELETE,
  1182. role_list=[RoleConstants.ADMIN],
  1183. parent_group=[SystemGroup.CHAT_USER]
  1184. )
  1185. CHAT_USER_GROUP = Permission(group=Group.CHAT_USER, operate=Operate.USER_GROUP,
  1186. role_list=[RoleConstants.ADMIN],
  1187. parent_group=[SystemGroup.CHAT_USER],
  1188. label=_('Set up user groups')
  1189. )
  1190. USER_GROUP_READ = Permission(group=Group.USER_GROUP, operate=Operate.READ,
  1191. role_list=[RoleConstants.ADMIN],
  1192. parent_group=[SystemGroup.CHAT_USER]
  1193. )
  1194. USER_GROUP_CREATE = Permission(group=Group.USER_GROUP, operate=Operate.CREATE,
  1195. role_list=[RoleConstants.ADMIN],
  1196. parent_group=[SystemGroup.CHAT_USER]
  1197. )
  1198. USER_GROUP_EDIT = Permission(group=Group.USER_GROUP, operate=Operate.EDIT,
  1199. role_list=[RoleConstants.ADMIN],
  1200. parent_group=[SystemGroup.CHAT_USER]
  1201. )
  1202. USER_GROUP_DELETE = Permission(group=Group.USER_GROUP, operate=Operate.DELETE,
  1203. role_list=[RoleConstants.ADMIN],
  1204. parent_group=[SystemGroup.CHAT_USER]
  1205. )
  1206. USER_GROUP_ADD_MEMBER = Permission(group=Group.USER_GROUP, operate=Operate.ADD_MEMBER,
  1207. role_list=[RoleConstants.ADMIN],
  1208. parent_group=[SystemGroup.CHAT_USER]
  1209. )
  1210. USER_GROUP_REMOVE_MEMBER = Permission(group=Group.USER_GROUP, operate=Operate.REMOVE_MEMBER,
  1211. role_list=[RoleConstants.ADMIN],
  1212. parent_group=[SystemGroup.CHAT_USER]
  1213. )
  1214. CHAT_USER_AUTH_READ = Permission(group=Group.CHAT_USER_AUTH, operate=Operate.READ,
  1215. role_list=[RoleConstants.ADMIN],
  1216. parent_group=[SystemGroup.CHAT_USER]
  1217. )
  1218. CHAT_USER_AUTH_EDIT = Permission(group=Group.CHAT_USER_AUTH, operate=Operate.EDIT,
  1219. role_list=[RoleConstants.ADMIN],
  1220. parent_group=[SystemGroup.CHAT_USER]
  1221. )
  1222. WORKSPACE_CHAT_USER_READ = Permission(group=Group.WORKSPACE_CHAT_USER, operate=Operate.READ,
  1223. role_list=[RoleConstants.ADMIN],
  1224. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1225. )
  1226. WORKSPACE_CHAT_USER_CREATE = Permission(group=Group.WORKSPACE_CHAT_USER, operate=Operate.CREATE,
  1227. role_list=[RoleConstants.ADMIN],
  1228. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1229. )
  1230. WORKSPACE_CHAT_USER_EDIT = Permission(group=Group.WORKSPACE_CHAT_USER, operate=Operate.EDIT,
  1231. role_list=[RoleConstants.ADMIN],
  1232. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1233. )
  1234. WORKSPACE_CHAT_USER_DELETE = Permission(group=Group.WORKSPACE_CHAT_USER, operate=Operate.DELETE,
  1235. role_list=[RoleConstants.ADMIN],
  1236. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1237. )
  1238. WORKSPACE_CHAT_USER_GROUP = Permission(group=Group.WORKSPACE_CHAT_USER, operate=Operate.USER_GROUP,
  1239. role_list=[RoleConstants.ADMIN],
  1240. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT],
  1241. label=_('Set up user groups')
  1242. )
  1243. WORKSPACE_USER_GROUP_READ = Permission(group=Group.WORKSPACE_USER_GROUP, operate=Operate.READ,
  1244. role_list=[RoleConstants.ADMIN],
  1245. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1246. )
  1247. WORKSPACE_USER_GROUP_CREATE = Permission(group=Group.WORKSPACE_USER_GROUP, operate=Operate.CREATE,
  1248. role_list=[RoleConstants.ADMIN],
  1249. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1250. )
  1251. WORKSPACE_USER_GROUP_EDIT = Permission(group=Group.WORKSPACE_USER_GROUP, operate=Operate.EDIT,
  1252. role_list=[RoleConstants.ADMIN],
  1253. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1254. )
  1255. WORKSPACE_USER_GROUP_DELETE = Permission(group=Group.WORKSPACE_USER_GROUP, operate=Operate.DELETE,
  1256. role_list=[RoleConstants.ADMIN],
  1257. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1258. )
  1259. WORKSPACE_USER_GROUP_ADD_MEMBER = Permission(group=Group.WORKSPACE_USER_GROUP, operate=Operate.ADD_MEMBER,
  1260. role_list=[RoleConstants.ADMIN],
  1261. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1262. )
  1263. WORKSPACE_USER_GROUP_REMOVE_MEMBER = Permission(group=Group.WORKSPACE_USER_GROUP, operate=Operate.REMOVE_MEMBER,
  1264. role_list=[RoleConstants.ADMIN],
  1265. parent_group=[WorkspaceGroup.SYSTEM_MANAGEMENT]
  1266. )
  1267. SHARED_TOOL_READ = Permission(group=Group.SYSTEM_TOOL, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1268. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1269. )
  1270. SHARED_TOOL_CREATE = Permission(group=Group.SYSTEM_TOOL, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1271. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1272. )
  1273. SHARED_TOOL_EDIT = Permission(
  1274. group=Group.SYSTEM_TOOL, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1275. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1276. )
  1277. SHARED_TOOL_DELETE = Permission(
  1278. group=Group.SYSTEM_TOOL, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1279. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1280. )
  1281. SHARED_TOOL_IMPORT = Permission(
  1282. group=Group.SYSTEM_TOOL, operate=Operate.IMPORT, role_list=[RoleConstants.ADMIN],
  1283. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1284. )
  1285. SHARED_TOOL_EXPORT = Permission(
  1286. group=Group.SYSTEM_TOOL, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1287. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1288. )
  1289. SHARED_TOOL_RELATE_RESOURCE_VIEW = Permission(
  1290. group=Group.SYSTEM_TOOL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
  1291. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1292. )
  1293. SHARED_TOOL_EXECUTE_RECORD = Permission(
  1294. group=Group.SYSTEM_TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN],
  1295. parent_group=[SystemGroup.SHARED_TOOL], is_ee=settings.edition == "EE"
  1296. )
  1297. SHARED_KNOWLEDGE_READ = Permission(
  1298. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1299. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1300. )
  1301. SHARED_KNOWLEDGE_CREATE = Permission(
  1302. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1303. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1304. )
  1305. SHARED_KNOWLEDGE_EDIT = Permission(
  1306. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1307. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1308. )
  1309. SHARED_KNOWLEDGE_SYNC = Permission(
  1310. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN],
  1311. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1312. )
  1313. SHARED_KNOWLEDGE_VECTOR = Permission(
  1314. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN],
  1315. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1316. )
  1317. SHARED_KNOWLEDGE_EXPORT = Permission(
  1318. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1319. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1320. )
  1321. SHARED_KNOWLEDGE_GENERATE = Permission(
  1322. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.GENERATE, role_list=[RoleConstants.ADMIN],
  1323. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1324. )
  1325. SHARED_KNOWLEDGE_DELETE = Permission(
  1326. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1327. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1328. )
  1329. SHARED_KNOWLEDGE_RELATE_RESOURCE_VIEW = Permission(
  1330. group=Group.SYSTEM_KNOWLEDGE, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
  1331. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1332. )
  1333. SHARED_KNOWLEDGE_WORKFLOW_READ = Permission(
  1334. group=Group.SYSTEM_KNOWLEDGE_WORKFLOW, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1335. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1336. )
  1337. SHARED_KNOWLEDGE_WORKFLOW_EDIT = Permission(
  1338. group=Group.SYSTEM_KNOWLEDGE_WORKFLOW, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1339. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1340. )
  1341. SHARED_KNOWLEDGE_WORKFLOW_EXPORT = Permission(
  1342. group=Group.SYSTEM_KNOWLEDGE_WORKFLOW, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1343. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1344. )
  1345. SHARED_KNOWLEDGE_DOCUMENT_READ = Permission(
  1346. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1347. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1348. )
  1349. SHARED_KNOWLEDGE_DOCUMENT_CREATE = Permission(
  1350. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1351. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1352. )
  1353. SHARED_KNOWLEDGE_DOCUMENT_EDIT = Permission(
  1354. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1355. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1356. )
  1357. SHARED_KNOWLEDGE_DOCUMENT_DELETE = Permission(
  1358. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1359. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1360. )
  1361. SHARED_KNOWLEDGE_DOCUMENT_SYNC = Permission(
  1362. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN],
  1363. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1364. )
  1365. SHARED_KNOWLEDGE_DOCUMENT_EXPORT = Permission(
  1366. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1367. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1368. )
  1369. SHARED_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE = Permission(
  1370. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.DOWNLOAD, role_list=[RoleConstants.ADMIN],
  1371. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1372. )
  1373. SHARED_KNOWLEDGE_DOCUMENT_GENERATE = Permission(
  1374. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.GENERATE, role_list=[RoleConstants.ADMIN],
  1375. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1376. )
  1377. SHARED_KNOWLEDGE_DOCUMENT_VECTOR = Permission(
  1378. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN],
  1379. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1380. )
  1381. SHARED_KNOWLEDGE_DOCUMENT_MIGRATE = Permission(
  1382. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
  1383. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1384. )
  1385. SHARED_KNOWLEDGE_DOCUMENT_TAG = Permission(
  1386. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
  1387. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1388. )
  1389. SHARED_KNOWLEDGE_DOCUMENT_REPLACE = Permission(
  1390. group=Group.SYSTEM_KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE, role_list=[RoleConstants.ADMIN],
  1391. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1392. )
  1393. SHARED_KNOWLEDGE_TAG_READ = Permission(
  1394. group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1395. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1396. )
  1397. SHARED_KNOWLEDGE_TAG_CREATE = Permission(
  1398. group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1399. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1400. )
  1401. SHARED_KNOWLEDGE_TAG_EDIT = Permission(
  1402. group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1403. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1404. )
  1405. SHARED_KNOWLEDGE_TAG_DELETE = Permission(
  1406. group=Group.SYSTEM_KNOWLEDGE_TAG, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1407. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1408. )
  1409. SHARED_KNOWLEDGE_PROBLEM_READ = Permission(
  1410. group=Group.SYSTEM_KNOWLEDGE_PROBLEM, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1411. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1412. )
  1413. SHARED_KNOWLEDGE_PROBLEM_CREATE = Permission(
  1414. group=Group.SYSTEM_KNOWLEDGE_PROBLEM, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1415. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1416. )
  1417. SHARED_KNOWLEDGE_PROBLEM_EDIT = Permission(
  1418. group=Group.SYSTEM_KNOWLEDGE_PROBLEM, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1419. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1420. )
  1421. SHARED_KNOWLEDGE_PROBLEM_DELETE = Permission(
  1422. group=Group.SYSTEM_KNOWLEDGE_PROBLEM, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1423. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1424. )
  1425. SHARED_KNOWLEDGE_PROBLEM_RELATE = Permission(
  1426. group=Group.SYSTEM_KNOWLEDGE_PROBLEM, operate=Operate.RELATE, role_list=[RoleConstants.ADMIN],
  1427. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1428. )
  1429. SHARED_KNOWLEDGE_HIT_TEST = Permission(
  1430. group=Group.SYSTEM_KNOWLEDGE_HIT_TEST, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1431. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1432. )
  1433. SHARED_KNOWLEDGE_CHAT_USER_READ = Permission(
  1434. group=Group.SYSTEM_KNOWLEDGE_CHAT_USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1435. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1436. )
  1437. SHARED_KNOWLEDGE_CHAT_USER_EDIT = Permission(
  1438. group=Group.SYSTEM_KNOWLEDGE_CHAT_USER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1439. parent_group=[SystemGroup.SHARED_KNOWLEDGE], is_ee=settings.edition == "EE"
  1440. )
  1441. SHARED_MODEL_READ = Permission(
  1442. group=Group.SYSTEM_MODEL, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1443. parent_group=[SystemGroup.SHARED_MODEL], is_ee=settings.edition == "EE"
  1444. )
  1445. SHARED_MODEL_CREATE = Permission(
  1446. group=Group.SYSTEM_MODEL, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1447. parent_group=[SystemGroup.SHARED_MODEL], is_ee=settings.edition == "EE"
  1448. )
  1449. SHARED_MODEL_EDIT = Permission(
  1450. group=Group.SYSTEM_MODEL, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1451. parent_group=[SystemGroup.SHARED_MODEL], is_ee=settings.edition == "EE"
  1452. )
  1453. SHARED_MODEL_DELETE = Permission(
  1454. group=Group.SYSTEM_MODEL, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1455. parent_group=[SystemGroup.SHARED_MODEL], is_ee=settings.edition == "EE"
  1456. )
  1457. SHARED_MODEL_RELATE_RESOURCE_VIEW = Permission(
  1458. group=Group.SYSTEM_MODEL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
  1459. parent_group=[SystemGroup.SHARED_MODEL], is_ee=settings.edition == "EE"
  1460. )
  1461. RESOURCE_APPLICATION_READ = Permission(
  1462. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1463. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1464. )
  1465. RESOURCE_APPLICATION_EDIT = Permission(
  1466. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1467. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1468. )
  1469. RESOURCE_APPLICATION_DELETE = Permission(
  1470. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1471. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1472. )
  1473. RESOURCE_APPLICATION_EXPORT = Permission(
  1474. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1475. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1476. )
  1477. RESOURCE_APPLICATION_AUTH = Permission(
  1478. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN],
  1479. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1480. )
  1481. RESOURCE_APPLICATION_TRIGGER_READ = Permission(
  1482. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN],
  1483. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1484. )
  1485. RESOURCE_APPLICATION_TRIGGER_CREATE = Permission(
  1486. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.TRIGGER_CREATE, role_list=[RoleConstants.ADMIN],
  1487. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1488. )
  1489. RESOURCE_APPLICATION_TRIGGER_EDIT = Permission(
  1490. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.TRIGGER_EDIT, role_list=[RoleConstants.ADMIN],
  1491. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1492. )
  1493. RESOURCE_APPLICATION_TRIGGER_DELETE = Permission(
  1494. group=Group.SYSTEM_RES_APPLICATION, operate=Operate.TRIGGER_DELETE, role_list=[RoleConstants.ADMIN],
  1495. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1496. )
  1497. RESOURCE_APPLICATION_OVERVIEW_READ = Permission(
  1498. group=Group.SYSTEM_RES_APPLICATION_OVERVIEW, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1499. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1500. )
  1501. RESOURCE_APPLICATION_OVERVIEW_EMBED = Permission(
  1502. group=Group.SYSTEM_RES_APPLICATION_OVERVIEW, operate=Operate.EMBED, role_list=[RoleConstants.ADMIN],
  1503. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1504. )
  1505. RESOURCE_APPLICATION_OVERVIEW_ACCESS = Permission(
  1506. group=Group.SYSTEM_RES_APPLICATION_OVERVIEW, operate=Operate.ACCESS, role_list=[RoleConstants.ADMIN],
  1507. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1508. )
  1509. RESOURCE_APPLICATION_OVERVIEW_DISPLAY = Permission(
  1510. group=Group.SYSTEM_RES_APPLICATION_OVERVIEW, operate=Operate.DISPLAY, role_list=[RoleConstants.ADMIN],
  1511. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1512. )
  1513. RESOURCE_APPLICATION_OVERVIEW_API_KEY = Permission(
  1514. group=Group.SYSTEM_RES_APPLICATION_OVERVIEW, operate=Operate.API_KEY, role_list=[RoleConstants.ADMIN],
  1515. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1516. )
  1517. RESOURCE_APPLICATION_OVERVIEW_PUBLIC = Permission(
  1518. group=Group.SYSTEM_RES_APPLICATION_OVERVIEW, operate=Operate.PUBLIC_ACCESS, role_list=[RoleConstants.ADMIN],
  1519. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1520. )
  1521. # 应用接入
  1522. RESOURCE_APPLICATION_ACCESS_READ = Permission(
  1523. group=Group.SYSTEM_RES_APPLICATION_ACCESS, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1524. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1525. )
  1526. RESOURCE_APPLICATION_ACCESS_EDIT = Permission(
  1527. group=Group.SYSTEM_RES_APPLICATION_ACCESS, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1528. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1529. )
  1530. RESOURCE_APPLICATION_CHAT_USER_READ = Permission(
  1531. group=Group.SYSTEM_RES_APPLICATION_CHAT_USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1532. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1533. )
  1534. RESOURCE_APPLICATION_CHAT_USER_EDIT = Permission(
  1535. group=Group.SYSTEM_RES_APPLICATION_CHAT_USER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1536. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1537. )
  1538. RESOURCE_APPLICATION_CHAT_LOG_READ = Permission(
  1539. group=Group.SYSTEM_RES_APPLICATION_CHAT_LOG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1540. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1541. )
  1542. RESOURCE_APPLICATION_CHAT_LOG_ADD_KNOWLEDGE = Permission(
  1543. group=Group.SYSTEM_RES_APPLICATION_CHAT_LOG, operate=Operate.ADD_KNOWLEDGE, role_list=[RoleConstants.ADMIN],
  1544. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1545. )
  1546. RESOURCE_APPLICATION_CHAT_LOG_ANNOTATION = Permission(
  1547. group=Group.SYSTEM_RES_APPLICATION_CHAT_LOG, operate=Operate.ANNOTATION, role_list=[RoleConstants.ADMIN],
  1548. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1549. )
  1550. RESOURCE_APPLICATION_CHAT_LOG_EXPORT = Permission(
  1551. group=Group.SYSTEM_RES_APPLICATION_CHAT_LOG, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1552. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1553. )
  1554. RESOURCE_APPLICATION_CHAT_LOG_CLEAR_POLICY = Permission(
  1555. group=Group.SYSTEM_RES_APPLICATION_CHAT_LOG, operate=Operate.CLEAR_POLICY, role_list=[RoleConstants.ADMIN],
  1556. parent_group=[SystemGroup.RESOURCE_APPLICATION], is_ee=settings.edition == "EE"
  1557. )
  1558. # 知识库
  1559. RESOURCE_KNOWLEDGE_READ = Permission(
  1560. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1561. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1562. )
  1563. RESOURCE_KNOWLEDGE_EDIT = Permission(
  1564. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1565. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1566. )
  1567. RESOURCE_KNOWLEDGE_DELETE = Permission(
  1568. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1569. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1570. )
  1571. RESOURCE_KNOWLEDGE_SYNC = Permission(
  1572. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN],
  1573. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1574. )
  1575. RESOURCE_KNOWLEDGE_EXPORT = Permission(
  1576. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1577. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1578. )
  1579. RESOURCE_KNOWLEDGE_VECTOR = Permission(
  1580. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN],
  1581. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1582. )
  1583. RESOURCE_KNOWLEDGE_GENERATE = Permission(
  1584. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.GENERATE, role_list=[RoleConstants.ADMIN],
  1585. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1586. )
  1587. RESOURCE_KNOWLEDGE_AUTH = Permission(
  1588. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN],
  1589. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1590. )
  1591. RESOURCE_KNOWLEDGE_RELATE_RESOURCE_VIEW = Permission(
  1592. group=Group.SYSTEM_RES_KNOWLEDGE, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
  1593. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1594. )
  1595. # 文档
  1596. RESOURCE_KNOWLEDGE_WORKFLOW_READ = Permission(
  1597. group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1598. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1599. )
  1600. RESOURCE_KNOWLEDGE_WORKFLOW_EDIT = Permission(
  1601. group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1602. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1603. )
  1604. RESOURCE_KNOWLEDGE_WORKFLOW_EXPORT = Permission(
  1605. group=Group.SYSTEM_RES_KNOWLEDGE_WORKFLOW, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1606. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1607. )
  1608. RESOURCE_KNOWLEDGE_DOCUMENT_READ = Permission(
  1609. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1610. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1611. )
  1612. RESOURCE_KNOWLEDGE_DOCUMENT_CREATE = Permission(
  1613. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1614. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1615. )
  1616. RESOURCE_KNOWLEDGE_DOCUMENT_EDIT = Permission(
  1617. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1618. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1619. )
  1620. RESOURCE_KNOWLEDGE_DOCUMENT_DELETE = Permission(
  1621. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1622. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1623. )
  1624. RESOURCE_KNOWLEDGE_DOCUMENT_SYNC = Permission(
  1625. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.SYNC, role_list=[RoleConstants.ADMIN],
  1626. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1627. )
  1628. RESOURCE_KNOWLEDGE_DOCUMENT_EXPORT = Permission(
  1629. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1630. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1631. )
  1632. RESOURCE_KNOWLEDGE_DOCUMENT_DOWNLOAD_SOURCE_FILE = Permission(
  1633. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.DOWNLOAD, role_list=[RoleConstants.ADMIN],
  1634. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1635. )
  1636. RESOURCE_KNOWLEDGE_DOCUMENT_GENERATE = Permission(
  1637. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.GENERATE, role_list=[RoleConstants.ADMIN],
  1638. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1639. )
  1640. RESOURCE_KNOWLEDGE_DOCUMENT_VECTOR = Permission(
  1641. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.VECTOR, role_list=[RoleConstants.ADMIN],
  1642. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1643. )
  1644. RESOURCE_KNOWLEDGE_DOCUMENT_MIGRATE = Permission(
  1645. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.MIGRATE, role_list=[RoleConstants.ADMIN],
  1646. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1647. )
  1648. RESOURCE_KNOWLEDGE_DOCUMENT_TAG = Permission(
  1649. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.TAG, role_list=[RoleConstants.ADMIN],
  1650. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1651. )
  1652. RESOURCE_KNOWLEDGE_DOCUMENT_REPLACE = Permission(
  1653. group=Group.SYSTEM_RES_KNOWLEDGE_DOCUMENT, operate=Operate.REPLACE, role_list=[RoleConstants.ADMIN],
  1654. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1655. )
  1656. RESOURCE_KNOWLEDGE_HIT_TEST = Permission(
  1657. group=Group.SYSTEM_RES_KNOWLEDGE_HIT_TEST, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1658. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1659. )
  1660. RESOURCE_KNOWLEDGE_PROBLEM_READ = Permission(
  1661. group=Group.SYSTEM_RES_KNOWLEDGE_PROBLEM, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1662. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1663. )
  1664. RESOURCE_KNOWLEDGE_PROBLEM_CREATE = Permission(
  1665. group=Group.SYSTEM_RES_KNOWLEDGE_PROBLEM, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1666. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1667. )
  1668. RESOURCE_KNOWLEDGE_PROBLEM_EDIT = Permission(
  1669. group=Group.SYSTEM_RES_KNOWLEDGE_PROBLEM, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1670. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1671. )
  1672. RESOURCE_KNOWLEDGE_PROBLEM_DELETE = Permission(
  1673. group=Group.SYSTEM_RES_KNOWLEDGE_PROBLEM, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1674. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1675. )
  1676. RESOURCE_KNOWLEDGE_PROBLEM_RELATE = Permission(
  1677. group=Group.SYSTEM_RES_KNOWLEDGE_PROBLEM, operate=Operate.RELATE, role_list=[RoleConstants.ADMIN],
  1678. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1679. )
  1680. RESOURCE_KNOWLEDGE_TAG_READ = Permission(
  1681. group=Group.SYSTEM_RES_KNOWLEDGE_TAG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1682. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1683. )
  1684. RESOURCE_KNOWLEDGE_TAG_CREATE = Permission(
  1685. group=Group.SYSTEM_RES_KNOWLEDGE_TAG, operate=Operate.CREATE, role_list=[RoleConstants.ADMIN],
  1686. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1687. )
  1688. RESOURCE_KNOWLEDGE_TAG_EDIT = Permission(
  1689. group=Group.SYSTEM_RES_KNOWLEDGE_TAG, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1690. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1691. )
  1692. RESOURCE_KNOWLEDGE_TAG_DELETE = Permission(
  1693. group=Group.SYSTEM_RES_KNOWLEDGE_TAG, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1694. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1695. )
  1696. RESOURCE_KNOWLEDGE_CHAT_USER_READ = Permission(
  1697. group=Group.SYSTEM_RES_KNOWLEDGE_CHAT_USER, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1698. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1699. )
  1700. RESOURCE_KNOWLEDGE_CHAT_USER_EDIT = Permission(
  1701. group=Group.SYSTEM_RES_KNOWLEDGE_CHAT_USER, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1702. parent_group=[SystemGroup.RESOURCE_KNOWLEDGE], is_ee=settings.edition == "EE"
  1703. )
  1704. RESOURCE_TOOL_READ = Permission(
  1705. group=Group.SYSTEM_RES_TOOL, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1706. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1707. )
  1708. RESOURCE_TOOL_EDIT = Permission(
  1709. group=Group.SYSTEM_RES_TOOL, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1710. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1711. )
  1712. RESOURCE_TOOL_DELETE = Permission(
  1713. group=Group.SYSTEM_RES_TOOL, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1714. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1715. )
  1716. RESOURCE_TOOL_EXPORT = Permission(
  1717. group=Group.SYSTEM_RES_TOOL, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1718. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1719. )
  1720. RESOURCE_TOOL_AUTH = Permission(
  1721. group=Group.SYSTEM_RES_TOOL, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN],
  1722. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1723. )
  1724. RESOURCE_TOOL_RELATE_RESOURCE_VIEW = Permission(
  1725. group=Group.SYSTEM_RES_TOOL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
  1726. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1727. )
  1728. RESOURCE_TOOL_EXECUTE_RECORD = Permission(
  1729. group=Group.SYSTEM_RES_TOOL, operate=Operate.RECORD, role_list=[RoleConstants.ADMIN],
  1730. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1731. )
  1732. RESOURCE_TOOL_TRIGGER_READ = Permission(
  1733. group=Group.SYSTEM_RES_TOOL, operate=Operate.TRIGGER_READ, role_list=[RoleConstants.ADMIN],
  1734. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1735. )
  1736. RESOURCE_TOOL_TRIGGER_CREATE = Permission(
  1737. group=Group.SYSTEM_RES_TOOL, operate=Operate.TRIGGER_CREATE, role_list=[RoleConstants.ADMIN],
  1738. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1739. )
  1740. RESOURCE_TOOL_TRIGGER_EDIT = Permission(
  1741. group=Group.SYSTEM_RES_TOOL, operate=Operate.TRIGGER_EDIT, role_list=[RoleConstants.ADMIN],
  1742. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1743. )
  1744. RESOURCE_TOOL_TRIGGER_DELETE = Permission(
  1745. group=Group.SYSTEM_RES_TOOL, operate=Operate.TRIGGER_DELETE, role_list=[RoleConstants.ADMIN],
  1746. parent_group=[SystemGroup.RESOURCE_TOOL], is_ee=settings.edition == "EE"
  1747. )
  1748. RESOURCE_MODEL_READ = Permission(
  1749. group=Group.SYSTEM_RES_MODEL, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1750. parent_group=[SystemGroup.RESOURCE_MODEL], is_ee=settings.edition == "EE"
  1751. )
  1752. RESOURCE_MODEL_EDIT = Permission(
  1753. group=Group.SYSTEM_RES_MODEL, operate=Operate.EDIT, role_list=[RoleConstants.ADMIN],
  1754. parent_group=[SystemGroup.RESOURCE_MODEL], is_ee=settings.edition == "EE"
  1755. )
  1756. RESOURCE_MODEL_DELETE = Permission(
  1757. group=Group.SYSTEM_RES_MODEL, operate=Operate.DELETE, role_list=[RoleConstants.ADMIN],
  1758. parent_group=[SystemGroup.RESOURCE_MODEL], is_ee=settings.edition == "EE"
  1759. )
  1760. RESOURCE_MODEL_AUTH = Permission(
  1761. group=Group.SYSTEM_RES_MODEL, operate=Operate.AUTH, role_list=[RoleConstants.ADMIN],
  1762. parent_group=[SystemGroup.RESOURCE_MODEL], is_ee=settings.edition == "EE"
  1763. )
  1764. RESOURCE_MODEL_RELATE_RESOURCE_VIEW = Permission(
  1765. group=Group.SYSTEM_RES_MODEL, operate=Operate.RELATE_VIEW, role_list=[RoleConstants.ADMIN],
  1766. parent_group=[SystemGroup.RESOURCE_MODEL], is_ee=settings.edition == "EE"
  1767. )
  1768. OPERATION_LOG_READ = Permission(
  1769. group=Group.OPERATION_LOG, operate=Operate.READ, role_list=[RoleConstants.ADMIN],
  1770. parent_group=[SystemGroup.OPERATION_LOG]
  1771. )
  1772. OPERATION_LOG_EXPORT = Permission(
  1773. group=Group.OPERATION_LOG, operate=Operate.EXPORT, role_list=[RoleConstants.ADMIN],
  1774. parent_group=[SystemGroup.OPERATION_LOG]
  1775. )
  1776. OPERATION_LOG_CLEAR_POLICY = Permission(
  1777. group=Group.OPERATION_LOG, operate=Operate.CLEAR_POLICY, role_list=[RoleConstants.ADMIN],
  1778. parent_group=[SystemGroup.OPERATION_LOG]
  1779. )
  1780. def get_workspace_application_permission(self):
  1781. return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
  1782. resource_path=
  1783. f"/WORKSPACE/{kwargs.get('workspace_id')}/APPLICATION/{kwargs.get('application_id')}")
  1784. def get_workspace_knowledge_permission(self):
  1785. return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
  1786. resource_path=
  1787. f"/WORKSPACE/{kwargs.get('workspace_id')}/KNOWLEDGE/{kwargs.get('knowledge_id')}")
  1788. def get_workspace_model_permission(self):
  1789. return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
  1790. resource_path=
  1791. f"/WORKSPACE/{kwargs.get('workspace_id')}/MODEL/{kwargs.get('model_id')}")
  1792. def get_workspace_tool_permission(self):
  1793. return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
  1794. resource_path=
  1795. f"/WORKSPACE/{kwargs.get('workspace_id')}/TOOL/{kwargs.get('tool_id')}")
  1796. def get_workspace_permission(self):
  1797. return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
  1798. resource_path=
  1799. f"/WORKSPACE/{kwargs.get('workspace_id')}")
  1800. def get_workspace_permission_workspace_manage_role(self):
  1801. return lambda r, kwargs: Permission(group=self.value.group, operate=self.value.operate,
  1802. resource_path=
  1803. f"/WORKSPACE/{kwargs.get('workspace_id')}:ROLE/{RoleConstants.WORKSPACE_MANAGE.value.__str__()}")
  1804. def __eq__(self, other):
  1805. if isinstance(other, PermissionConstants):
  1806. return other == self
  1807. else:
  1808. return self.value == other
  1809. def get_default_permission_list_by_role(role: RoleConstants):
  1810. """
  1811. 根据角色 获取角色对应的权限
  1812. :param role: 角色
  1813. :return: 权限
  1814. """
  1815. return list(map(lambda k: PermissionConstants[k],
  1816. list(filter(lambda k: PermissionConstants[k].value.role_list.__contains__(role),
  1817. PermissionConstants.__members__))))
  1818. class RolePermissionMapping:
  1819. def __init__(self, role_id, permission_id):
  1820. self.role_id = role_id
  1821. self.permission_id = permission_id
  1822. class WorkspaceUserRoleMapping:
  1823. def __init__(self, workspace_id, role_id, user_id):
  1824. self.workspace_id = workspace_id
  1825. self.role_id = role_id
  1826. self.user_id = user_id
  1827. def get_default_role_permission_mapping_list():
  1828. role_permission_mapping_list = [
  1829. [RolePermissionMapping(role.value.name, PermissionConstants[k].value.__str__()) for role in
  1830. PermissionConstants[k].value.role_list] for k in PermissionConstants.__members__]
  1831. return reduce(lambda x, y: [*x, *y], role_permission_mapping_list, [])
  1832. def get_default_workspace_user_role_mapping_list(user_role_list: list):
  1833. return [WorkspaceUserRoleMapping('default', role.value.name, 'default') for role in RoleConstants if
  1834. user_role_list.__contains__(role.value.name)]
  1835. def get_permission_list_by_resource_group(resource_group: ResourcePermissionGroup):
  1836. """
  1837. 根据资源组获取权限
  1838. """
  1839. return [PermissionConstants[k].value for k in PermissionConstants.__members__ if
  1840. PermissionConstants[k].value.resource_permission_group_list.__contains__(resource_group)]
  1841. class ChatAuth:
  1842. def __init__(self,
  1843. current_role_list: List[RoleConstants | Role],
  1844. permission_list: List[PermissionConstants | Permission],
  1845. chat_user_id,
  1846. chat_user_type,
  1847. application_id):
  1848. # 权限列表
  1849. self.permission_list = permission_list
  1850. # 角色列表
  1851. self.role_list = current_role_list
  1852. self.chat_user_id = chat_user_id
  1853. self.chat_user_type = chat_user_type
  1854. self.application_id = application_id
  1855. class Auth:
  1856. """
  1857. 用于存储当前用户的角色和权限
  1858. """
  1859. def __init__(self,
  1860. current_role_list: List[RoleConstants | Role],
  1861. permission_list: List[PermissionConstants | Permission],
  1862. **keywords):
  1863. # 权限列表
  1864. self.permission_list = permission_list
  1865. # 角色列表
  1866. self.role_list = current_role_list
  1867. self.keywords = keywords
  1868. class CompareConstants(Enum):
  1869. # 或者
  1870. OR = "OR"
  1871. # 并且
  1872. AND = "AND"
  1873. class ViewPermission:
  1874. def __init__(self, roleList: List[RoleConstants], permissionList: List[PermissionConstants | object],
  1875. compare=CompareConstants.OR):
  1876. self.roleList = roleList
  1877. self.permissionList = permissionList
  1878. self.compare = compare