Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 internal void AddSecurityRole(SecurityRole role)
 {
     security.AddSecurityRole(role);
 }
Esempio n. 5
0
 public void AddSecurityRole(SecurityRole role)
 {
     Core.AddSecurityRole(role);
 }
Esempio n. 6
0
 internal void AddSecurityRole(SecurityRole role)
 {
     SecurityRoles.Add(role.RoleId, role);
     addedRoles.Add(role.RoleId);
     AddRoleToDb(this.db, role, Core.RootBusinessUnitRef);
 }