protected void Page_Load(object sender, EventArgs e) { string roleId = Request.QueryString["role"]; this.Page.Response.CacheControl = "no-cache"; this.calcProgress.Tag = roleId; if (Page.IsPostBack == false) { SCRole role = (SCRole)MCS.Library.SOA.DataObjects.Security.Adapters.SchemaObjectAdapter.Instance.Load(roleId); if (role == null || role.Status != SchemaObjectStatus.Normal) { throw new ObjectNotFoundException("未查询到指定的角色或角色已不再有效"); } SCApplication app = DbUtil.LoadApplicationForRole(role); this.RoleAndAppObject = new RoleAndAppData() { AppID = app.ID, AppCodeName = app.CodeName, AppName = app.Name, RoleCodeName = role.CodeName, RoleID = role.ID, RoleName = role.Name, RoleDisplayName = role.DisplayName }; this.DeluxeSearch.UserCustomSearchConditions = DbUtil.LoadSearchCondition(ThisPageSearchResourceKey, "Default"); this.CurrentAdvancedSearchCondition = new PageAdvancedSearchCondition(); this.gridMain.PageSize = this.grid2.PageSize = ProfileUtil.PageSize; this.views.ActiveViewIndex = ProfileUtil.GeneralViewModeIndex; } this.binding1.Data = this.RoleAndAppObject; this.searchBinding.Data = this.CurrentAdvancedSearchCondition; }
public void JoinRoleAndPermissionTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCPermission permission = SCObjectGenerator.PreparePermissionObject(); SCObjectOperations.Instance.AddPermission(permission, application); SCRelationObject relation = SCObjectOperations.Instance.JoinRoleAndPermission(role, permission); role.ClearRelativeData(); Assert.IsTrue(role.CurrentPermissions.ContainsKey(permission.ID)); Assert.IsTrue(permission.CurrentRoles.ContainsKey(role.ID)); SCObjectOperations.Instance.DisjoinRoleAndPermission(role, permission); role.ClearRelativeData(); permission.ClearRelativeData(); Assert.IsFalse(role.CurrentPermissions.ContainsKey(permission.ID)); Assert.IsFalse(permission.CurrentRoles.ContainsKey(role.ID)); }
public void AddMemberToRoleTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCUser user2 = SCObjectGenerator.PrepareUserObject("RU2", "User2", "RoleUser2"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SCObjectOperations.Instance.AddMemberToRole(user2, role); Assert.AreEqual(2, role.CurrentMembers.Count); Assert.IsTrue(role.CurrentMembers.ContainsKey(user1.ID)); Assert.IsTrue(role.CurrentMembers.ContainsKey(user2.ID)); Assert.IsTrue(user1.CurrentRoles.ContainsKey(role.ID)); Assert.IsTrue(user2.CurrentRoles.ContainsKey(role.ID)); }
public void SCQueryPermissionsByUserIDsSnapshotTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCPermission permission = SCObjectGenerator.PreparePermissionObject(); SCObjectOperations.Instance.AddPermission(permission, application); SCRelationObject relation = SCObjectOperations.Instance.JoinRoleAndPermission(role, permission); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SchemaObjectCollection result = SCSnapshotAdapter.Instance.QueryPermissionsByUserIDs(new string[] { user1.ID }, false, DateTime.MinValue); Assert.IsTrue(result.Count > 0); Console.WriteLine(result[0].Properties.GetValue("Name", string.Empty)); Assert.AreEqual(permission.ID, result[0].ID); }
public void DeletePermissionTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCPermission permission = SCObjectGenerator.PreparePermissionObject(); SCObjectOperations.Instance.AddPermission(permission, application); SCRelationObject relation = SCObjectOperations.Instance.JoinRoleAndPermission(role, permission); SCObjectOperations.Instance.DeletePermission(permission); application.ClearRelativeData(); role.ClearRelativeData(); Console.WriteLine("Role permission count {0}, applicaiton permission count {1}", role.CurrentPermissions.Count, application.CurrentPermissions.Count); Assert.AreEqual(0, role.CurrentPermissions.Count); Assert.AreEqual(0, application.CurrentPermissions.Count); }
public void InheritAclPermissionsTest() { //准备组织数据 SCOrganization parent = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(parent, SCOrganization.GetRoot()); //准备应用 SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role1 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role1, application); //准备人员 SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, parent); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user1, role1); SCRole role2 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role2, application); //准备人员 SCUser user2 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user2, parent); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user2, role2); //准备Container SCAclContainer container = new SCAclContainer(parent); container.Members.Add("AddChildren", role1); container.Members.Add("AddChildren", role2); SCObjectOperations.Instance.UpdateObjectAcl(container); SCOrganization organization = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(organization, parent); SCAclMemberCollection members = SCAclAdapter.Instance.LoadByContainerID(organization.ID, DateTime.MinValue); Assert.IsTrue(members.ContainsKey("AddChildren", role1.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, members["AddChildren", role1.ID].Status); Assert.IsTrue(members.ContainsKey("AddChildren", role2.ID)); Assert.AreEqual(SchemaObjectStatus.Normal, members["AddChildren", role2.ID].Status); }
public void DeleteAclMemberTest() { //准备组织数据 SCOrganization organization = SCObjectGenerator.PrepareOrganizationObject(); SCObjectOperations.Instance.AddOrganization(organization, SCOrganization.GetRoot()); //准备应用 SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role1 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role1, application); //准备人员 SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user1, organization); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user1, role1); SCRole role2 = SCObjectGenerator.PrepareRoleObject(); //准备角色 SCObjectOperations.Instance.AddRole(role2, application); //准备人员 SCUser user2 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCObjectOperations.Instance.AddUser(user2, organization); //将人员添加到角色 SCObjectOperations.Instance.AddMemberToRole(user2, role2); //准备Container SCAclContainer container = new SCAclContainer(organization); container.Members.Add("AddChildren", role1); container.Members.Add("AddChildren", role2); SCObjectOperations.Instance.UpdateObjectAcl(container); Console.WriteLine("ContainerID: {0}", container.ContainerID); SCObjectOperations.Instance.DeleteRole(role1); SCObjectOperations.Instance.DeleteRole(role2); SCAclMemberCollection members = SCAclAdapter.Instance.LoadByContainerID(organization.ID, DateTime.MinValue); Assert.IsFalse(members.ContainsKey("AddChildren", role1.ID)); Assert.IsFalse(members.ContainsKey("AddChildren", role2.ID)); }
public static SCRole PrepareRoleObject() { SCRole role = new SCRole(); role.ID = UuidHelper.NewUuidString(); role.Name = "Great Role"; role.CodeName = role.ID; return(role); }
/// <summary> /// 得到角色中权限的变化列表 /// </summary> /// <param name="app"></param> /// <param name="role"></param> /// <returns></returns> private static SCRoleAndDeltaGroup GetDeltaGroupsInRole(this SCRole role, IEnumerable <SCGroup> groupsInOrgs) { List <SCGroup> existedGroups = new List <SCGroup>(); role.CurrentMembers.ForEach(m => (m is SCGroup).TrueAction(() => existedGroups.Add((SCGroup)m))); DeltaSchemaObjectCollection delta = GetDeltaObjects(existedGroups, groupsInOrgs); return(new SCRoleAndDeltaGroup(role, delta)); }
internal static SCApplication LoadApplicationForRole(SCRole role) { var appRelation = PC.Adapters.SCMemberRelationAdapter.Instance.LoadByMemberID(role.ID, "Applications").Find(m => m.Status == SchemaObjectStatus.Normal); if (appRelation == null) { throw new ObjectNotFoundException("未找到角色对应的应用"); } return((SCApplication)appRelation.Container); }
public void AddRoleTest() { Trace.CorrelationManager.ActivityId = UuidHelper.NewUuid(); SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); application.CurrentRoles.ContainsKey(role.ID); }
public SCJoinRoleAndPermissionExecutor(SCOperationType opType, SCRole role, SCPermission permission) : base(opType) { role.NullCheck("role"); permission.NullCheck("permission"); role.ClearRelativeData(); permission.ClearRelativeData(); this._Relation = PrepareRelationObject(role, permission); this._Role = role; this._Permission = permission; }
public void TestSerializeRole() { System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); SCRole obj1 = SCObjectGenerator.PrepareRoleObject(); obj1.CreateDate = DateTime.Now; obj1.VersionEndTime = new DateTime(567890); obj1.VersionEndTime = DateTime.MaxValue; System.IO.MemoryStream ms = new System.IO.MemoryStream(); bf.Serialize(ms, obj1); ms.Seek(0, System.IO.SeekOrigin.Begin); SCRole obj2 = (SCRole)bf.Deserialize(ms); CommonAssert(obj1, obj2); }
public SchemaObjectBase AddRole(SCRole role, SCApplication application) { SCMemberRelativeExecutor executor = new SCMemberRelativeExecutor(SCOperationType.AddRole, application, role) { NeedValidation = this.NeedValidationAndStatusCheck, SaveTargetData = true, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckPermissions(SCOperationType.AddRole, application.Schema, "AddRoles", application.ID); } SCMemberRelation result = null; ExecuteWithActions(SCOperationType.AddRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); return(result); }
/// <summary> /// 得到角色中权限的变化列表 /// </summary> /// <param name="app"></param> /// <param name="role"></param> /// <returns></returns> public static SCRoleAndDeltaPermission GetDeltaPermissionsInRole(this SCApplication app, SCRole role) { SCRole existedRole = app.CurrentRoles.Find(existed => AreEqual(existed, role)); DeltaSchemaObjectCollection delta = null; if (existedRole != null) { delta = GetDeltaObjects(existedRole.CurrentPermissions, role.CurrentPermissions); } else { delta = new DeltaSchemaObjectCollection(); existedRole = role; } return(new SCRoleAndDeltaPermission(existedRole, delta)); }
public SchemaObjectBase UpdateRole(SCRole role) { SCObjectExecutor executor = new SCObjectExecutor(SCOperationType.UpdateRole, role) { NeedValidation = this.NeedValidationAndStatusCheck, NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckApplicationMemberPermissions(SCOperationType.UpdateRole, "UpdateRoles", role); } SchemaObjectBase result = null; ExecuteWithActions(SCOperationType.UpdateRole, () => SCActionContext.Current.DoActions(() => result = (SchemaObjectBase)executor.Execute())); return(result); }
public static SCRoleCollection GetRoles(this DataTable table) { SCRoleCollection roles = new SCRoleCollection(); if (table != null && table.Columns.Count > StartColumn) { for (int i = StartColumn; i < table.Columns.Count; i++) { string roleName = table.Columns[i].ColumnName; SCRole role = new SCRole(); roles.Add(InitProperties(role, roleName)); } } return(roles); }
public SCMemberRelation AddMemberToRole(SCBase member, SCRole role) { SCMemberRelativeExecutor executor = new SCMemberRelativeExecutor(SCOperationType.AddMemberToRole, role, member) { NeedStatusCheck = this.NeedValidationAndStatusCheck, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckApplicationMemberPermissions(SCOperationType.AddMemberToRole, "ModifyMembersInRoles", role); } SCMemberRelation result = null; ExecuteWithActions(SCOperationType.AddMemberToRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); return(result); }
public SCRelationObject JoinRoleAndPermission(SCRole role, SCPermission permission) { SCJoinRoleAndPermissionExecutor executor = new SCJoinRoleAndPermissionExecutor(SCOperationType.JoinRoleAndPermission, role, permission) { NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckApplicationMemberPermissions(SCOperationType.JoinRoleAndPermission, "EditRelationOfRolesAndPermissions", permission); } SCRelationObject result = null; ExecuteWithActions(SCOperationType.JoinRoleAndPermission, () => SCActionContext.Current.DoActions(() => result = (SCRelationObject)executor.Execute())); return(result); }
protected void btnGenInitData_Click(object sender, EventArgs e) { SCApplication app = new SCApplication(); app.ID = "68DB2697-59B2-414B-8591-58CE06C4B44F"; app.Name = "权限中心"; app.CodeName = "OGU_ADMIN"; app.DisplayName = "权限中心"; PC.Executors.SCObjectOperations.Instance.AddApplication(app); SCRole role = new SCRole(); role.ID = "6BEA73AB-0924-483B-BEE0-55C0847CFDAB"; role.DisplayName = role.Name = "权限中心总管"; role.CodeName = "SYSTEM_ADMINISTRATOR"; PC.Executors.SCObjectOperations.Instance.AddRole(role, app); }
private static void PrepareTestApplicationData() { SCApplication app1 = PrepareSCObject <SCApplication>("应用1", "应用1"); SCObjectOperations.Instance.AddApplication(app1); SCRole role11 = PrepareSCObject <SCRole>("应用1角色1", "应用1角色1"); SCObjectOperations.Instance.AddRole(role11, app1); SCRole role12 = PrepareSCObject <SCRole>("应用1角色2", "应用1角色2"); SCObjectOperations.Instance.AddRole(role12, app1); SCPermission permission11 = PrepareSCObject <SCPermission>("应用1权限1", "应用1权限1"); SCObjectOperations.Instance.AddPermission(permission11, app1); SCPermission permission12 = PrepareSCObject <SCPermission>("应用1权限2", "应用1权限2"); SCObjectOperations.Instance.AddPermission(permission12, app1); SCApplication app2 = PrepareSCObject <SCApplication>("应用2", "应用2"); SCObjectOperations.Instance.AddApplication(app2); SCRole role21 = PrepareSCObject <SCRole>("应用2角色1", "应用2角色1"); SCObjectOperations.Instance.AddRole(role21, app2); SCRole role22 = PrepareSCObject <SCRole>("应用2角色2", "应用2角色2"); SCObjectOperations.Instance.AddRole(role22, app2); SCPermission permission21 = PrepareSCObject <SCPermission>("应用2权限1", "应用2权限1"); SCObjectOperations.Instance.AddPermission(permission21, app2); SCPermission permission22 = PrepareSCObject <SCPermission>("应用2权限2", "应用2权限2"); SCObjectOperations.Instance.AddPermission(permission22, app2); }
public SCMemberRelation RemoveMemberFromRole(SCBase member, SCRole role) { SCMemberRelativeExecutor executor = new SCMemberRelativeExecutor(SCOperationType.RemoveMemberFromRole, role, member) { OverrideExistedRelation = true, NeedStatusCheck = this.NeedValidationAndStatusCheck, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckApplicationMemberPermissions(SCOperationType.RemoveMemberFromRole, "ModifyMembersInRoles", role); } executor.Relation.Status = SchemaObjectStatus.Deleted; SCMemberRelation result = null; ExecuteWithActions(SCOperationType.RemoveMemberFromRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); return(result); }
public SchemaObjectBase DeleteRole(SCRole role) { SCObjectExecutor executor = new SCObjectExecutor(SCOperationType.DeleteRole, role) { NeedValidation = false, NeedDeleteMemberRelations = true, NeedDeleteRelations = true, NeedDeleteConditions = true, NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckApplicationMemberPermissions(SCOperationType.DeleteRole, "DeleteRoles", role); } role.Status = SchemaObjectStatus.Deleted; SchemaObjectBase result = null; ExecuteWithActions(SCOperationType.DeleteRole, () => SCActionContext.Current.DoActions(() => result = (SchemaObjectBase)executor.Execute())); return(result); }
public static SCRolesAndPermissions GetRolesAndPermissions(this DataTable table, SCPermissionCollection existedPermissions) { table.NullCheck("table"); SCRoleCollection roles = new SCRoleCollection(); SCPermissionCollection permissions = table.GetPermissions(existedPermissions); if (table.Columns.Contains("权限点/数据权限") && table.Columns.Count > StartColumn) { for (int i = StartColumn; i < table.Columns.Count; i++) { string roleName = table.Columns[i].ColumnName; SCRole role = roles.Append(InitProperties(new SCRole(), roleName)); foreach (DataRow row in table.Rows) { string permissionName = row["权限点/数据权限"].ToString(); if (permissionName.IsNotEmpty()) { SCPermission permission = permissions.Find(p => string.Compare(permissionName, p.CodeName, true) == 0); if (permission != null) { string cellValue = row[roleName].ToString(); if (cellValue.IsNullOrEmpty() || cellValue.Trim().IsNullOrEmpty() || cellValue.Trim().ToUpper() == "N") { continue; } role.CurrentPermissions.Append(permission); } } } } } return(new SCRolesAndPermissions(roles, permissions)); }
public SCRelationObject DisjoinRoleAndPermission(SCRole role, SCPermission permission) { SCJoinRoleAndPermissionExecutor executor = new SCJoinRoleAndPermissionExecutor(SCOperationType.DisjoinRoleAndPermission, role, permission) { OverrideExistedRelation = true, NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) { CheckApplicationMemberPermissions(SCOperationType.DisjoinRoleAndPermission, "EditRelationOfRolesAndPermissions", permission); } executor.Relation.Status = SchemaObjectStatus.Deleted; SCRelationObject result = null; ExecuteWithActions(SCOperationType.DisjoinRoleAndPermission, () => SCActionContext.Current.DoActions(() => result = (SCRelationObject)executor.Execute())); return(result); }
public void DeleteRoleTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); Console.WriteLine("RoleID: {0}", role.ID); SCUser user1 = SCObjectGenerator.PrepareUserObject("RU1", "User1", "RoleUser1"); SCUser user2 = SCObjectGenerator.PrepareUserObject("RU2", "User2", "RoleUser2"); SCObjectOperations.Instance.AddUser(user1, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddUser(user2, SCOrganization.GetRoot()); SCObjectOperations.Instance.AddMemberToRole(user1, role); SCObjectOperations.Instance.AddMemberToRole(user2, role); SCObjectAndRelationCollection relations = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(new string[] { "Roles" }, new string[] { role.ID }, false, DateTime.MinValue); Assert.AreEqual(role.CurrentMembers.Count, relations.Count); SCObjectOperations.Instance.DeleteRole(role); Assert.AreEqual(0, application.CurrentRoles.Count); Assert.AreEqual(0, user1.CurrentRoles.Count); Assert.AreEqual(0, user2.CurrentRoles.Count); SCObjectAndRelationCollection relationDeleted = SCSnapshotAdapter.Instance.QueryRolesContainsMembers(new string[] { "Roles" }, new string[] { role.ID }, false, DateTime.MinValue); Assert.AreEqual(role.CurrentMembers.Count, relationDeleted.Count); SameContainerUserAndContainerSnapshotCollection containsUsers = UserAndContainerSnapshotAdapter.Instance.LoadByContainerID(role.ID); containsUsers.ForEach(u => Assert.AreEqual(SchemaObjectStatus.Deleted, u.Status)); }
public void UpdateRoleRoleConditionTest() { SCApplication application = SCObjectGenerator.PrepareApplicationObject(); SCObjectOperations.Instance.AddApplication(application); SCRole role = SCObjectGenerator.PrepareRoleObject(); SCObjectOperations.Instance.AddRole(role, application); SCConditionOwner owner = new SCConditionOwner() { OwnerID = role.ID }; owner.Conditions.Add(new SCCondition() { OwnerID = role.ID, SortID = 0, Condition = "Users.Status == 1" }); owner.Conditions.Add(new SCCondition() { OwnerID = role.ID, SortID = 1, Condition = "Users.Status == 3" }); SCObjectOperations.Instance.UpdateRoleConditions(owner); SCConditionOwner ownerLoaded = SCConditionAdapter.Instance.Load(role.ID); Assert.AreEqual(owner.OwnerID, ownerLoaded.OwnerID); Assert.AreEqual("Default", ownerLoaded.Type); Assert.AreEqual(owner.Conditions.Count, ownerLoaded.Conditions.Count); for (int i = 0; i < owner.Conditions.Count; i++) { Assert.AreEqual(owner.Conditions[i].OwnerID, ownerLoaded.Conditions[i].OwnerID); Assert.AreEqual(owner.Conditions[i].Condition, ownerLoaded.Conditions[i].Condition); } }
public static void ImportRoles(this DataTable table, SCApplication app) { app.NullCheck("app"); if (table != null && table.Columns.Count > 2 && table.Rows.Count > 0) { for (int i = 2; i < table.Columns.Count; i++) { string roleName = table.Columns[i].ColumnName; if (SchemaObjectAdapter.Instance.LoadByCodeName("Roles", roleName, SchemaObjectStatus.Normal, DateTime.MinValue) == null) { SCRole role = new SCRole(); role.ID = UuidHelper.NewUuidString(); role.DisplayName = role.Name = roleName; role.CodeName = roleName; SCObjectOperations.Instance.AddRole(role, app); } } } }
private SCRelationObject PrepareRelationObject(SCRole role, SCPermission permission) { SCRelationObject relation = SchemaRelationObjectAdapter.Instance.Load(role.ID, permission.ID); if (relation == null) { relation = new SCRelationObject(role, permission); } else { if (relation.Status == SchemaObjectStatus.Normal) { this._RelationExisted = true; } else { relation.Status = SchemaObjectStatus.Normal; } } return(relation); }
public SchemaObjectBase DeleteRole(SCRole role) { SCObjectExecutor executor = new SCObjectExecutor(SCOperationType.DeleteRole, role) { NeedValidation = false, NeedDeleteMemberRelations = true, NeedDeleteRelations = true, NeedDeleteConditions = true, NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckApplicationMemberPermissions(SCOperationType.DeleteRole, "DeleteRoles", role); role.Status = SchemaObjectStatus.Deleted; SchemaObjectBase result = null; ExecuteWithActions(SCOperationType.DeleteRole, () => SCActionContext.Current.DoActions(() => result = (SchemaObjectBase)executor.Execute())); return result; }
private SCRelationObject PrepareRelationObject(SCRole role, SCPermission permission) { SCRelationObject relation = SchemaRelationObjectAdapter.Instance.Load(role.ID, permission.ID); if (relation == null) relation = new SCRelationObject(role, permission); else { if (relation.Status == SchemaObjectStatus.Normal) this._RelationExisted = true; else relation.Status = SchemaObjectStatus.Normal; } return relation; }
public SCRelationObject DisjoinRoleAndPermission(SCRole role, SCPermission permission) { SCJoinRoleAndPermissionExecutor executor = new SCJoinRoleAndPermissionExecutor(SCOperationType.DisjoinRoleAndPermission, role, permission) { OverrideExistedRelation = true, NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckApplicationMemberPermissions(SCOperationType.DisjoinRoleAndPermission, "EditRelationOfRolesAndPermissions", permission); executor.Relation.Status = SchemaObjectStatus.Deleted; SCRelationObject result = null; ExecuteWithActions(SCOperationType.DisjoinRoleAndPermission, () => SCActionContext.Current.DoActions(() => result = (SCRelationObject)executor.Execute())); return result; }
public SCRelationObject JoinRoleAndPermission(SCRole role, SCPermission permission) { SCJoinRoleAndPermissionExecutor executor = new SCJoinRoleAndPermissionExecutor(SCOperationType.JoinRoleAndPermission, role, permission) { NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckApplicationMemberPermissions(SCOperationType.JoinRoleAndPermission, "EditRelationOfRolesAndPermissions", permission); SCRelationObject result = null; ExecuteWithActions(SCOperationType.JoinRoleAndPermission, () => SCActionContext.Current.DoActions(() => result = (SCRelationObject)executor.Execute())); return result; }
public SCMemberRelation RemoveMemberFromRole(SCBase member, SCRole role) { SCMemberRelativeExecutor executor = new SCMemberRelativeExecutor(SCOperationType.RemoveMemberFromRole, role, member) { OverrideExistedRelation = true, NeedStatusCheck = this.NeedValidationAndStatusCheck, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckApplicationMemberPermissions(SCOperationType.RemoveMemberFromRole, "ModifyMembersInRoles", role); executor.Relation.Status = SchemaObjectStatus.Deleted; SCMemberRelation result = null; ExecuteWithActions(SCOperationType.RemoveMemberFromRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); return result; }
public SCMemberRelation AddMemberToRole(SCBase member, SCRole role) { SCMemberRelativeExecutor executor = new SCMemberRelativeExecutor(SCOperationType.AddMemberToRole, role, member) { NeedStatusCheck = this.NeedValidationAndStatusCheck, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckApplicationMemberPermissions(SCOperationType.AddMemberToRole, "ModifyMembersInRoles", role); SCMemberRelation result = null; ExecuteWithActions(SCOperationType.AddMemberToRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); return result; }
public SchemaObjectBase UpdateRole(SCRole role) { SCObjectExecutor executor = new SCObjectExecutor(SCOperationType.UpdateRole, role) { NeedValidation = this.NeedValidationAndStatusCheck, NeedStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckApplicationMemberPermissions(SCOperationType.UpdateRole, "UpdateRoles", role); SchemaObjectBase result = null; ExecuteWithActions(SCOperationType.UpdateRole, () => SCActionContext.Current.DoActions(() => result = (SchemaObjectBase)executor.Execute())); return result; }
public SchemaObjectBase AddRole(SCRole role, SCApplication application) { SCMemberRelativeExecutor executor = new SCMemberRelativeExecutor(SCOperationType.AddRole, application, role) { NeedValidation = this.NeedValidationAndStatusCheck, SaveTargetData = true, NeedContainerStatusCheck = this.NeedValidationAndStatusCheck }; if (this._NeedCheckPermissions) CheckPermissions(SCOperationType.AddRole, application.Schema, "AddRoles", application.ID); SCMemberRelation result = null; ExecuteWithActions(SCOperationType.AddRole, () => SCActionContext.Current.DoActions(() => result = (SCMemberRelation)executor.Execute())); return result; }
public List <AdditionOperation> GetAditionOperations(string id) { List <AdditionOperation> list = new List <AdditionOperation>(); if (string.IsNullOrEmpty(id) == false) { var obj = SchemaObjectAdapter.Instance.Load(id); if (obj.Status == SchemaObjectStatus.Normal) { if (obj is SCUser) { var relation = obj.CurrentParentRelations.Find(m => m.Status == SchemaObjectStatus.Normal && m.Default && Util.IsOrganization(m.ParentSchemaType)); if (relation != null) { list.Add(new AdditionOperation("转到缺省组织", false, GetClientUrl("~/lists/OUExplorer.aspx?ou=" + relation.ParentID), "_blank")); } string ownerId = ((SCUser)obj).OwnerID; if (string.IsNullOrEmpty(ownerId) == false) { list.Add(new AdditionOperation("转到所有者", false, GetClientUrl("~/lists/OUExplorer.aspx?ou=" + ownerId), "_blank")); } } else if (obj is SCGroup) { SCGroup grp = (SCGroup)obj; var parents = grp.CurrentParentRelations; var relation = parents.Find(m => m.Status == SchemaObjectStatus.Normal && Util.IsOrganization(m.ParentSchemaType)); if (relation != null) { list.Add(new AdditionOperation("转到组织", false, GetClientUrl("~/lists/OUExplorer.aspx?ou=" + relation.ParentID), "_blank")); } } else if (obj is SCRole) { SCRole role = (SCRole)obj; list.Add(new AdditionOperation("打开应用", false, GetClientUrl("~/lists/AllApps.aspx?id=" + role.CurrentApplication.ID), "_blank")); list.Add(new AdditionOperation("定位", true, GetClientUrl("~/lists/AppRoles.aspx?app=" + role.CurrentApplication.ID) + "&id=" + role.ID, "_blank")); //if (this.GetEditRoleMembersEnabled(role.CurrentApplication.ID)) //{ // list.Add(new AdditionOperation("角色矩阵", true, GetClientUrl("/MCSWebApp/WorkflowDesigner/MatrixModalDialog/RolePropertyExtension.aspx?AppID=" + role.CurrentApplication.ID + "&roleID=" + role.ID))); //} list.Add(new AdditionOperation("角色功能定义", true, GetClientUrl("~/dialogs/RoleDefinition.aspx?role=" + role.ID))); } else if (obj is SCPermission) { SCPermission permission = (SCPermission)obj; list.Add(new AdditionOperation("打开应用", false, GetClientUrl("~/lists/AllApps.aspx?id=" + permission.CurrentApplication.ID), "_blank")); list.Add(new AdditionOperation("定位", true, GetClientUrl("~/lists/AppFunctions.aspx?app=" + permission.CurrentApplication.ID) + "&id=" + permission.ID, "_blank")); } else if (obj is SCOrganization) { var relation = obj.CurrentParentRelations.Find(m => m.Status == SchemaObjectStatus.Normal && Util.IsOrganization(m.ParentSchemaType)); if (relation != null) { list.Add(new AdditionOperation("转到上级组织", false, GetClientUrl("~/lists/OUExplorer.aspx?ou=" + relation.ParentID), "_blank")); } } else if (obj is SCApplication) { list.Add(new AdditionOperation("定位", false, GetClientUrl("~/lists/AllApps.aspx?id=" + obj.ID), "_blank")); } } } return(list); }