feat: update cms case api
This commit is contained in:
@@ -37,6 +37,32 @@ class IsSuperOrHospitalAdmin(BasePermission):
|
||||
raise AppError('CMS_PERMISSION_DENIED', '需要超级管理员或医院管理员权限', status_code=403)
|
||||
|
||||
|
||||
def is_content_admin(user):
|
||||
return getattr(user, 'role_type', '') == 'content_admin'
|
||||
|
||||
|
||||
def is_hospital_admin(user):
|
||||
return getattr(user, 'role_type', '') == 'hospital_admin'
|
||||
|
||||
|
||||
class IsSuperContentOrHospitalAdmin(BasePermission):
|
||||
"""超级管理员 / 内容管理员 / 医院管理员可访问(病例库 + AI 生成 + 病例审核)。
|
||||
|
||||
数据范围(超管全平台;内容/医院管理员仅本机构 `institution`)由 ViewSet 的
|
||||
get_queryset 收口;各动作的角色权限(建/改归内容管理员,审核发布归医院管理员)
|
||||
在 ViewSet 内逐动作判定。
|
||||
"""
|
||||
|
||||
def has_permission(self, request, view):
|
||||
user = request.user
|
||||
if user and user.is_authenticated and (
|
||||
is_super(user) or is_content_admin(user) or is_hospital_admin(user)
|
||||
):
|
||||
return True
|
||||
raise AppError('CMS_PERMISSION_DENIED',
|
||||
'需要超级管理员 / 内容管理员 / 医院管理员权限', status_code=403)
|
||||
|
||||
|
||||
class IsTeacher(BasePermission):
|
||||
"""仅带教医生(role_type=doctor)可访问。
|
||||
|
||||
|
||||
@@ -5,4 +5,5 @@ from django.urls import path, include
|
||||
urlpatterns = [
|
||||
path('', include('apps.organization.urls')), # 机构、科室
|
||||
path('', include('apps.user.cms_urls')), # 用户
|
||||
path('', include('apps.case.cms_urls')), # 病例库 + AI 病例生成
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user