/// <summary> /// Removes list of privileges to each role in the specified list /// </summary> /// <param name="privileges">List of privileges to remove</param> /// <param name="role">List of roles to update</param> public void RemovePrivilegesToRole(List <RolePrivilege> privileges, Entity role) { bool hasChanged = false; Guid roleId = (Guid)role["roleid"]; // Retrieve the privileges for the current security role var request = new RetrieveRolePrivilegesRoleRequest { RoleId = roleId }; var response = (RetrieveRolePrivilegesRoleResponse)innerService.Execute(request); List <RolePrivilege> rolePrivileges = response.RolePrivileges.ToList(); // If the privilege exists in the privileges set of the security role, // we remove it foreach (RolePrivilege privilege in privileges) { var request3 = new RemovePrivilegeRoleRequest { RoleId = roleId, PrivilegeId = privilege.PrivilegeId }; innerService.Execute(request3); } }
public List <RolePrivilege> GetPrivilegesForRole(Guid roleId) { var request = new RetrieveRolePrivilegesRoleRequest { RoleId = roleId }; var response = (RetrieveRolePrivilegesRoleResponse)innerService.Execute(request); return(response.RolePrivileges.ToList()); }
private IEnumerable <RolePrivilege> GetRolePrivileges(Guid idRole) { var request = new RetrieveRolePrivilegesRoleRequest() { RoleId = idRole, }; var response = (RetrieveRolePrivilegesRoleResponse)_service.Execute(request); return(response.RolePrivileges); }
/// <summary> /// Retrieve the <c>Privilege</c> that are assigned to the specified <c>Role</c>. /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.replaceprivilegesrolerequest(v=crm.8).aspx /// </para> /// </summary> /// <param name="roleId">Role Id</param> /// <returns> /// <see cref="RolePrivilege"/> list for data /// </returns> public List <RolePrivilege> GetPrivilegesByRoleId(Guid roleId) { ExceptionThrow.IfGuidEmpty(roleId, "roleId"); RetrieveRolePrivilegesRoleRequest request = new RetrieveRolePrivilegesRoleRequest() { RoleId = roleId }; RetrieveRolePrivilegesRoleResponse serviceResponse = (RetrieveRolePrivilegesRoleResponse)this.OrganizationService.Execute(request); return(serviceResponse.RolePrivileges.ToList()); }
public List <SecurityRole> GetRoles() { var list = new List <SecurityRole>(); var qe = new QueryExpression("role") { Criteria = new FilterExpression(), ColumnSet = new ColumnSet(true) }; qe.Criteria.AddCondition("parentroleid", ConditionOperator.Null); var roles = service.RetrieveMultiple(qe).Entities; foreach (var role in roles) { var sr = new SecurityRole { Id = role.Id, Name = role["name"].ToString(), Privileges = new List <Privilege>() }; var request = new RetrieveRolePrivilegesRoleRequest { RoleId = role.Id }; var response = (RetrieveRolePrivilegesRoleResponse)service.Execute(request); foreach (var roleprivilege in response.RolePrivileges) { sr.Privileges.Add(new Privilege { Id = roleprivilege.PrivilegeId, Depth = roleprivilege.Depth }); } list.Add(sr); } return(list); }
/// <summary> /// Adds list of privileges to each role in the specified list /// </summary> /// <param name="privileges">List of privileges to add</param> /// <param name="role">List of roles to update</param> public void AddPrivilegesToRole(List <RolePrivilege> privileges, Entity role) { bool hasChanged = false; Guid roleId = (Guid)role["roleid"]; // Retrieve the privileges for the current security role var request = new RetrieveRolePrivilegesRoleRequest { RoleId = roleId }; var response = (RetrieveRolePrivilegesRoleResponse)innerService.Execute(request); List <RolePrivilege> rolePrivileges = response.RolePrivileges.ToList(); // If the privilege isn't already in the current security role // privileges, it is added foreach (RolePrivilege privilege in privileges) { var rp = rolePrivileges.Find(x => x.PrivilegeId == privilege.PrivilegeId); if (rp == null) { rolePrivileges.Add(privilege); hasChanged = true; } else if (rp.Depth != privilege.Depth) { rolePrivileges[rolePrivileges.IndexOf(rp)] = privilege; hasChanged = true; } } // If some privileges have been added, we can update the security role if (hasChanged) { var apRequest = new ReplacePrivilegesRoleRequest { RoleId = roleId, Privileges = rolePrivileges.ToArray() }; innerService.Execute(apRequest); } }
/// <summary> /// Adds list of privileges to each role in the specified list /// </summary> /// <param name="privileges">List of privileges to add</param> /// <param name="role">List of roles to update</param> public void AddPrivilegesToRole(List<RolePrivilege> privileges, Entity role) { bool hasChanged = false; Guid roleId = (Guid)role["roleid"]; // Retrieve the privileges for the current security role var request = new RetrieveRolePrivilegesRoleRequest { RoleId = roleId }; var response = (RetrieveRolePrivilegesRoleResponse)innerService.Execute(request); List<RolePrivilege> rolePrivileges = response.RolePrivileges.ToList(); // If the privilege isn't already in the current security role // privileges, it is added foreach (RolePrivilege privilege in privileges) { var rp = rolePrivileges.Find(x => x.PrivilegeId == privilege.PrivilegeId); if (rp == null) { rolePrivileges.Add(privilege); hasChanged = true; } else if (rp.Depth != privilege.Depth) { rolePrivileges[rolePrivileges.IndexOf(rp)] = privilege; hasChanged = true; } } // If some privileges have been added, we can update the security role if (hasChanged) { var apRequest = new ReplacePrivilegesRoleRequest { RoleId = roleId, Privileges = rolePrivileges.ToArray() }; innerService.Execute(apRequest); } }
public List<SecurityRole> GetRoles() { var list = new List<SecurityRole>(); var qe = new QueryExpression("role") {Criteria = new FilterExpression(), ColumnSet = new ColumnSet(true)}; qe.Criteria.AddCondition("parentroleid", ConditionOperator.Null); var roles = service.RetrieveMultiple(qe).Entities; foreach (var role in roles) { var sr = new SecurityRole { Id = role.Id, Name = role["name"].ToString(), Privileges = new List<Privilege>() }; var request = new RetrieveRolePrivilegesRoleRequest { RoleId = role.Id }; var response = (RetrieveRolePrivilegesRoleResponse) service.Execute(request); foreach (var roleprivilege in response.RolePrivileges) { sr.Privileges.Add(new Privilege { Id = roleprivilege.PrivilegeId, Depth = roleprivilege.Depth }); } list.Add(sr); } return list; }
/// <summary> /// Removes list of privileges to each role in the specified list /// </summary> /// <param name="privileges">List of privileges to remove</param> /// <param name="role">List of roles to update</param> public void RemovePrivilegesToRole(List<RolePrivilege> privileges, Entity role) { bool hasChanged = false; Guid roleId = (Guid)role["roleid"]; // Retrieve the privileges for the current security role var request = new RetrieveRolePrivilegesRoleRequest { RoleId = roleId }; var response = (RetrieveRolePrivilegesRoleResponse)innerService.Execute(request); List<RolePrivilege> rolePrivileges = response.RolePrivileges.ToList(); // If the privilege exists in the privileges set of the security role, // we remove it foreach (RolePrivilege privilege in privileges) { var request3 = new RemovePrivilegeRoleRequest { RoleId = roleId, PrivilegeId = privilege.PrivilegeId }; innerService.Execute(request3); } }
public List<RolePrivilege> GetPrivilegesForRole(Guid roleId) { var request = new RetrieveRolePrivilegesRoleRequest { RoleId = roleId }; var response = (RetrieveRolePrivilegesRoleResponse)innerService.Execute(request); return response.RolePrivileges.ToList(); }