public static bool GetCanBeDepth(SecurityPrivilegeMetadata priv, PrivilegeDepthExtended privilegeDepth) { switch (privilegeDepth) { case PrivilegeDepthExtended.None: return(true); case PrivilegeDepthExtended.Basic: return(priv.CanBeBasic); case PrivilegeDepthExtended.Local: return(priv.CanBeLocal); case PrivilegeDepthExtended.Deep: return(priv.CanBeDeep); case PrivilegeDepthExtended.Global: return(priv.CanBeGlobal); default: break; } return(false); }
public RoleRange GetPrivilegeRange(EntityMetadata entity, KeyValuePair <ModelRole, List <ModelRolePrivilege> > privilege, PrivilegeType type) { SecurityPrivilegeMetadata entityPrivigle = entity.Privileges.Where(p => p.PrivilegeType == type).FirstOrDefault(); if (entityPrivigle == null) { return(RoleRange.None); } ModelRolePrivilege rolePrivigle = privilege.Value.Where(model => model.PrivilegeId == entityPrivigle.PrivilegeId).FirstOrDefault(); if (rolePrivigle == null) { return(RoleRange.None); } ModelDepthMask depthMask = Dictionary.DepthMasks.Where(model => (int)model.Value == rolePrivigle.Mask).FirstOrDefault(); return(depthMask.RoleRange); }
/// <summary> /// Add a privilege to the current role. /// </summary> /// <param name="Service">Organization Service</param> /// <param name="EntityLogicalName">Entity Logical Name</param> /// <param name="Type">Privilege Type</param> /// <param name="Depth">Privilege Level</param> public void AddPrivilege(IOrganizationService Service, string EntityLogicalName, PrivilegeType Type, PrivilegeDepth Depth) { RetrieveEntityRequest RERequest = new RetrieveEntityRequest() { LogicalName = base.LogicalName, EntityFilters = Microsoft.Xrm.Sdk.Metadata.EntityFilters.Privileges }; RetrieveEntityResponse REResponse = Service.Execute(RERequest) as RetrieveEntityResponse; SecurityPrivilegeMetadata Privilege = (from Priv in REResponse.EntityMetadata.Privileges where Priv.PrivilegeType == Type select Priv).FirstOrDefault(); if (Privilege != null) { AddPrivilegesRoleRequest Request = new AddPrivilegesRoleRequest() { RoleId = this.Id, Privileges = new RolePrivilege[] { new RolePrivilege { BusinessUnitId = this.GetAttributeValue <Guid>("businessunitid"), PrivilegeId = Privilege.PrivilegeId, Depth = Depth } } }; Service.Execute(Request); } }
public SecurityPrivilegeInfo(SecurityPrivilegeMetadata p) { this.p = p; }
public SecurityPrivilegeInfo(SecurityPrivilegeMetadata p) { this.p = p; }