public void RemoveUserFromRole(SCUser user, AdminUnit unit, AUSchemaRole role) { CheckUnitPermission(AUOperationType.RemoveUserFromRole, "EditRoleMembers", unit); SchemaObjectBase r = Adapters.AUSnapshotAdapter.Instance.LoadAURole(role.ID, unit.ID, true, DateTime.MinValue); if (r == null) { throw new AUObjectValidationException("没有找到此管理单元的角色,请尝试重新添加此角色"); } AUMemberRelativeExecutor executor = new AUMemberRelativeExecutor(AUOperationType.RemoveUserFromRole, r, user) { OverrideExistedRelation = true, SaveTargetData = false, NeedStatusCheck = false, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck, }; executor.Relation.Status = SchemaObjectStatus.Deleted; SCMemberRelation result = null; ExecuteWithActions(AUOperationType.RemoveUserFromRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); }
public AURoleMemberExecutor(AUOperationType opType, AUSchemaRole role, AdminUnit unit, SCUser[] users) : base(opType) { role.NullCheck("role"); users.NullCheck("users"); unit.NullCheck("unit"); this.schemaRole = role; this.users = users; this.unit = unit; }
public void ReplaceUsersInRole(SCUser[] users, AdminUnit unit, AUSchemaRole role) { CheckUnitPermission(AUOperationType.RemoveUserFromRole, "EditRoleMembers", unit); AURoleMemberExecutor executor = new AURoleMemberExecutor(AUOperationType.RemoveUserFromRole, role, unit, users) { NeedStatusCheck = this.NeedValidationAndStatusCheck, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; ExecuteWithActions(AUOperationType.RemoveUserFromRole, () => SCActionContext.Current.DoActions(() => executor.Execute())); }
public AUSchemaRoleExecutor(AUOperationType type, AUSchema schema, AUSchemaRole data) : base(type, schema, data) { switch (type) { case AUOperationType.AddSchemaRole: case AUOperationType.RemoveSchemaRole: break; default: throw new ArgumentOutOfRangeException("type", string.Format("AUSchemaRoleExecutor不支持{0}操作", type)); } }
public void UpdateAdminSchemaRole(AUSchemaRole role) { CheckSupervisior(); AUObjectExecutor executor = new Executors.AUObjectExecutor(AUOperationType.UpdateAdminSchemaRole, role) { }; ExecuteWithActions(AUOperationType.UpdateAdminSchemaRole, () => SCActionContext.Current.DoActions(() => { executor.Execute(); })); }
public void DeleteAdminSchemaRole(AUSchemaRole role) { CheckSupervisior(); Executors.AUSchemaRoleExecutor executor = new Executors.AUSchemaRoleExecutor(AUOperationType.RemoveSchemaRole, role.GetCurrentOwnerAUSchema(), role) { SaveTargetData = true, OverrideExistedRelation = true, NeedContainerStatusCheck = true, }; role.Status = SchemaObjectStatus.Deleted; ExecuteWithActions(AUOperationType.RemoveSchemaRole, () => SCActionContext.Current.DoActions(() => { executor.Execute(); })); }
public void AddAdminSchemaRole(AUSchemaRole role, AUSchema schema) { CheckSupervisior(); AUSchemaRoleExecutor executor = new AUSchemaRoleExecutor(AUOperationType.AddSchemaRole, schema, role) { SaveTargetData = true, OverrideExistedRelation = true, NeedContainerStatusCheck = true, }; role.Status = SchemaObjectStatus.Normal; ExecuteWithActions(AUOperationType.AddSchemaRole, () => SCActionContext.Current.DoActions(() => { executor.Execute(); })); }
public void RemoveUserFromRole(SCUser user, AdminUnit unit, AUSchemaRole role) { CheckUnitPermission(AUOperationType.RemoveUserFromRole, "EditRoleMembers", unit); SchemaObjectBase r = Adapters.AUSnapshotAdapter.Instance.LoadAURole(role.ID, unit.ID, true, DateTime.MinValue); if (r == null) throw new AUObjectValidationException("没有找到此管理单元的角色,请尝试重新添加此角色"); AUMemberRelativeExecutor executor = new AUMemberRelativeExecutor(AUOperationType.RemoveUserFromRole, r, user) { OverrideExistedRelation = true, SaveTargetData = false, NeedStatusCheck = false, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck, }; executor.Relation.Status = SchemaObjectStatus.Deleted; SCMemberRelation result = null; ExecuteWithActions(AUOperationType.RemoveUserFromRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); }