private void ImportRoleConditions(SCObjectSet objectSet, IImportContext context, PC.Executors.ISCObjectOperations executor, Dictionary <object, object> mappings, PC.SCRole[] roles) { if (roles.Length > 0 && objectSet.HasConditions) { foreach (var r in roles) { PC.SCRole role2 = r; if (mappings.ContainsKey(r)) { role2 = (PC.SCRole)mappings[r]; } var roleConditions = (from c in objectSet.Conditions where c.OwnerID == r.ID select c).ToArray(); if (roleConditions.Length > 0) { context.AppendLogFormat("正在替角色{0}添加条件\r\n", role2.ToDescription()); PC.Conditions.SCConditionOwner owner = new PC.Conditions.SCConditionOwner() { OwnerID = role2.ID, Type = "Default" }; foreach (var c in roleConditions) { owner.Conditions.Add(c); } PC.Adapters.SCConditionAdapter.Instance.UpdateConditions(owner); } } } }
private void ImportRolePermissions(SCObjectSet objectSet, IImportContext context, PC.Executors.ISCObjectOperations executor, Dictionary <object, object> mappings, PC.SCPermission[] permissions, PC.SCRole[] roles, bool copyMode) { if (roles.Length > 0 && permissions.Length > 0 && objectSet.HasRelations) { foreach (var r in roles) { PC.SCRole role2 = r; if (mappings.ContainsKey(r)) { role2 = (PC.SCRole)mappings[r]; } context.AppendLogFormat("正在替 {0} 查找功能定义\r\n", role2.ToDescription()); foreach (var p in permissions) { PC.SCPermission permission2 = p; if (mappings.ContainsKey(p)) { permission2 = (PC.SCPermission)mappings[p]; } var actual = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(role2.ID, permission2.ID); var actualHasPermission = actual != null && actual.Status == SchemaObjectStatus.Normal; var refHasPermission = (from rr in objectSet.Relations where rr.Status == SchemaObjectStatus.Normal && rr.ParentID == r.ID && rr.ID == p.ID && rr.ChildSchemaType == "Permissions" && rr.ParentSchemaType == "Roles" select rr).FirstOrDefault() != null; if (refHasPermission == false && actualHasPermission) { context.AppendLogFormat("正在替角色 {0} 解除功能 {1}\r\n", role2.ToDescription(), permission2.ToDescription()); executor.DisjoinRoleAndPermission(role2, permission2); } else if (refHasPermission && actualHasPermission == false) { context.AppendLogFormat("正在替角色 {0} 指定功能 {1}\r\n", role2.ToDescription(), permission2.ToDescription()); executor.JoinRoleAndPermission(role2, permission2); } } } } }
private void ImportRoleDefinitions(SCObjectSet objectSet, IImportContext context, PC.Executors.ISCObjectOperations exec, int count, int allCount, PC.SCRole role, PC.SCRole role2) { context.SetStatus(count, allCount, "正在查找并添加角色功能定义"); context.AppendLogFormat("正在替 {0} 查找角色功能定义\r\n", role2.ToDescription()); var permissionIds = (from p in objectSet.Relations where p.ParentID == role.ID && p.ChildSchemaType == "Permissions" select p.ID).ToArray(); var permissions = permissionIds.Length > 0 ? DbUtil.LoadObjects(permissionIds) : null; if (permissions != null) { foreach (PC.SCPermission p in permissions) { var relation = PC.Adapters.SchemaRelationObjectAdapter.Instance.Load(role.ID, p.ID); if (relation == null || relation.Status != SchemaObjectStatus.Normal) { string text = string.Format("正在替角色 {0} 指定功能 {1}\r\n", role.DisplayName ?? role.Name, p.DisplayName ?? p.Name); context.SetStatus(count, allCount, text); context.AppendLog(text); exec.JoinRoleAndPermission(role, (PC.SCPermission)p); } } } }