多角色账号按 All > College > Class > Self 自动取最高权限。

学院管理员限制在所属学院。
辅导员通过稳定账号 ID 绑定行政班,避免重名串班。
教师只能访问本人档案、授课课程和所授课学生。
学生只能访问本人档案及所在班级课程。
教师/学生角色会自动校验并绑定工号或学号档案。
超级管理员可在用户页面调整角色、学院、工号/学号,并预览生效后的数据范围。
This commit is contained in:
2026-07-24 14:54:30 +08:00 Unverified
parent 0b463fa4f2
commit bcc4d33bd5
26 changed files with 2333 additions and 88 deletions
+8 -4
View File
@@ -53,7 +53,8 @@ public sealed class AuthController(
user.UserName!,
user.DisplayName,
roles,
user.CollegeId));
user.CollegeId,
EffectiveDataScopeResolver.Resolve(roles).ToString()));
}
[Authorize]
@@ -67,12 +68,14 @@ public sealed class AuthController(
return Unauthorized();
}
var roles = await userManager.GetRolesAsync(user);
return new CurrentUserResponse(
user.Id,
user.UserName!,
user.DisplayName,
await userManager.GetRolesAsync(user),
user.CollegeId);
roles,
user.CollegeId,
EffectiveDataScopeResolver.Resolve(roles).ToString());
}
}
@@ -87,4 +90,5 @@ public sealed record CurrentUserResponse(
string UserName,
string DisplayName,
IEnumerable<string> Roles,
Guid? CollegeId);
Guid? CollegeId,
string EffectiveDataScope);