public SecurityRole Clone() { var clone = new SecurityRole(); clone.Privileges = new Dictionary <string, Dictionary <AccessRights, RolePrivilege> >(); foreach (var priv in this.Privileges) { var newV = new Dictionary <AccessRights, RolePrivilege>(); foreach (var v in priv.Value) { newV.Add(v.Key, new RolePrivilege() { AccessRight = v.Value.AccessRight, CanBeBasic = v.Value.CanBeBasic, CanBeDeep = v.Value.CanBeDeep, CanBeGlobal = v.Value.CanBeGlobal, CanBeLocal = v.Value.CanBeLocal, PrivilegeDepth = v.Value.PrivilegeDepth }); } var p = new KeyValuePair <string, Dictionary <AccessRights, RolePrivilege> >(priv.Key, newV); clone.Privileges.Add(p.Key, p.Value); } clone.Name = "Clone of " + this.Name; clone.BusinessUnitId = this.BusinessUnitId; clone.RoleId = Guid.NewGuid(); clone.RoleTemplateId = this.RoleTemplateId; return(clone); }
internal void AddSecurityRole(SecurityRole role) { var existing = this.db.GetEntityOrNull(new EntityReference("role", role.RoleId)); if (existing == null) { AddRoleToDb(this.db, role, Core.RootBusinessUnitRef); } if (!SecurityRoles.ContainsKey(role.RoleId)) { SecurityRoles.Add(role.RoleId, role); addedRoles.Add(role.RoleId); } }
internal void AddRoleToDb(IXrmDb db, SecurityRole newRole, EntityReference businessUnit) { var roleMeta = Metadata.EntityMetadata.GetMetadata("role"); var role = new Entity("role") { Id = newRole.RoleId }; role[roleMeta.PrimaryIdAttribute] = role.Id; role["businessunitid"] = businessUnit; role["name"] = newRole.Name; role["roletemplateid"] = newRole.RoleTemplateId; role["createdby"] = Core.AdminUserRef; role["createdon"] = DateTime.UtcNow.Add(Core.TimeOffset); role["modifiedby"] = Core.AdminUserRef; role["modifiedon"] = DateTime.UtcNow.Add(Core.TimeOffset); db.Add(role); SecurityRoleMapping.Add(role.Id, newRole.RoleId); }
internal void AddSecurityRole(SecurityRole role) { security.AddSecurityRole(role); }
public void AddSecurityRole(SecurityRole role) { Core.AddSecurityRole(role); }
internal void AddSecurityRole(SecurityRole role) { SecurityRoles.Add(role.RoleId, role); addedRoles.Add(role.RoleId); AddRoleToDb(this.db, role, Core.RootBusinessUnitRef); }