培养方案下放学院维护,学院账号被后端限制在本学院范围;新增按年级、学院、专业联动筛选及维护范围提示。
课程库实行分级维护:学院只能维护本学院的专业必修、专业选修和实践课程;通识课程可查看、引用但不可修改。校级账号保留全校统筹权限。 “排课与课表”已从“教学建设”迁移到“教学运行”,原路由保持不变。 权限规则同时落实在前端和 API,并新增专项测试。
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Security.Claims;
|
||||
using Jiaowu.Api.Domain.Academic;
|
||||
using Jiaowu.Api.Domain.Identity;
|
||||
using Jiaowu.Api.Infrastructure.Auth;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
@@ -53,4 +54,49 @@ public sealed class DataScopeTests
|
||||
Assert.True(current.CanAccessCollege(collegeId));
|
||||
Assert.False(current.CanAccessCollege(Guid.NewGuid()));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(CourseNature.MajorRequired, true)]
|
||||
[InlineData(CourseNature.MajorElective, true)]
|
||||
[InlineData(CourseNature.Practice, true)]
|
||||
[InlineData(CourseNature.GeneralRequired, false)]
|
||||
[InlineData(CourseNature.GeneralElective, false)]
|
||||
public void CollegeAdmin_OnlyMaintainsDelegatedCourseNatures(
|
||||
CourseNature nature,
|
||||
bool expected)
|
||||
{
|
||||
var collegeId = Guid.NewGuid();
|
||||
var scope = new CurrentUserScope(
|
||||
Guid.NewGuid(),
|
||||
"学院教务",
|
||||
collegeId,
|
||||
DataScope.College,
|
||||
new HashSet<string>([SystemRoles.CollegeAdmin]));
|
||||
|
||||
Assert.Equal(
|
||||
expected,
|
||||
CourseMaintenancePolicy.CanManage(scope, collegeId, nature));
|
||||
Assert.False(CourseMaintenancePolicy.CanManage(
|
||||
scope,
|
||||
Guid.NewGuid(),
|
||||
nature));
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(SystemRoles.SuperAdmin)]
|
||||
[InlineData(SystemRoles.AcademicAdmin)]
|
||||
public void SchoolAdministrators_RetainWholeCourseCatalogueManagement(string role)
|
||||
{
|
||||
var scope = new CurrentUserScope(
|
||||
Guid.NewGuid(),
|
||||
"校级教务",
|
||||
null,
|
||||
DataScope.All,
|
||||
new HashSet<string>([role]));
|
||||
|
||||
Assert.True(CourseMaintenancePolicy.CanManage(
|
||||
scope,
|
||||
Guid.NewGuid(),
|
||||
CourseNature.GeneralRequired));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user