{"record":{"id":"455484d36d9051c2","repo":"infiniflow/ragflow","slug":"not-implement-get-user-permission-user-name","errorCode":null,"errorMessage":"not implement: get user permission: {user_name}","messagePattern":"not implement: get user permission: (.+?)","errorType":"http","errorClass":"AdminException","httpStatus":400,"severity":"warning","filePath":"admin/server/roles.py","lineNumber":76,"sourceCode":"        raise AdminException(error_msg)\n\n    @staticmethod\n    def revoke_role_permission(role_name: str, actions: list, resource: str) -> Dict[str, Any]:\n        error_msg = f\"not implement: revoke role {role_name} actions: {actions} on {resource}\"\n        logging.error(error_msg)\n        raise AdminException(error_msg)\n\n    @staticmethod\n    def update_user_role(user_name: str, role_name: str) -> Dict[str, Any]:\n        error_msg = f\"not implement: update user role: {user_name} to role {role_name}\"\n        logging.error(error_msg)\n        raise AdminException(error_msg)\n\n    @staticmethod\n    def get_user_permission(user_name: str) -> Dict[str, Any]:\n        error_msg = f\"not implement: get user permission: {user_name}\"\n        logging.error(error_msg)\n        raise AdminException(error_msg)\n","sourceCodeStart":58,"sourceCodeEnd":77,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/admin/server/roles.py#L58-L77","documentation":"RoleMgr.get_user_permission (admin/server/roles.py:76) is the last stub of the RoleMgr surface: logs 'not implement: get user permission: {user_name}' and raises AdminException. Effective-permission queries for a user are unimplemented; the call returns no data.","triggerScenarios":"Calling RoleMgr.get_user_permission(user_name), e.g. an admin UI 'view user permissions' action or an authorization check in custom tooling.","commonSituations":"Audit tooling enumerating what a user may do; debugging 403s by inspecting permissions (which instead raises this).","solutions":["Derive permissions from what is implemented: check is_superuser and the user's tenant roles directly.","Implement in a fork if you need an effective-permission API."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"def user_permission_supported() -> bool:\n    # RoleMgr.get_user_permission is a stub in this version\n    return False","typeGuard":null,"tryCatchPattern":"from api.common.exceptions import AdminException\ntry:\n    perms = RoleMgr.get_user_permission(user)\nexcept AdminException as e:\n    if str(e).startswith(\"not implement\"):\n        perms = {\"superuser\": bool(user_row.is_superuser)}  # derive from implemented fields\n    else:\n        raise","preventionTips":["Derive effective permissions from is_superuser and tenant membership.","Build audit tooling on the user/tenant tables, not on RoleMgr stubs."],"tags":["not-implemented","roles","rbac","permissions","admin"],"backgroundTag":null,"analyzedSha":"554fb1133ac3861732235ad9c377eb5e0a770665","analyzedAt":"2026-08-15T09:20:16.380Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}