using System;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using System.Collections.Generic;
/// <summary>
/// 安全角色
/// </summary>
public class RoleHelper
{
public static readonly string entityName =
"role";
public Guid roleId =
Guid.Empty;
/// <summary>
/// 创建安全角色
/// </summary>
/// <param name="service">服务</param>
/// <param name="name">角色名称</param>
/// <param name="unitId">业务部门</param>
public void Create(IOrganizationService service,
string name, Guid unitId)
{
Entity en =
new Entity() { LogicalName =
entityName };
en["name"] =
name;
en["businessunitid"] =
new EntityReference() { LogicalName =
"businessunit", Id =
unitId };
roleId =
service.Create(en);
}
/// <summary>
/// 修改安全角色
/// </summary>
/// <param name="service">服务</param>
/// <param name="name">角色名称</param>
/// <param name="unitId">业务部门</param>
public void Update(IOrganizationService service,
string name, Guid unitId)
{
Entity en =
new Entity() { LogicalName = entityName, Id =
roleId };
en["name"] =
name;
en["businessunitid"] =
new EntityReference() { LogicalName =
"businessunit", Id =
unitId };
service.Update(en);
}
/// <summary>
/// 给安全角色添加权限
/// </summary>
/// <param name="service">服务</param>
/// <param name="businessUnitId">业务部门id</param>
/// <param name="privilegeId">权限id</param>
public void AddPrivilegesRole(IOrganizationService service, Guid businessUnitId, Guid privilegeId)
{
AddPrivilegesRoleRequest request =
new AddPrivilegesRoleRequest();
request.RoleId =
roleId;
RolePrivilege rp =
new RolePrivilege();
//Basic: 1/4,Local : 1/2,Deep : 3/4,Global: 4/4 组织
rp.Depth =
PrivilegeDepth.Basic;
//权限
rp.PrivilegeId =
privilegeId;
//业务部门
rp.BusinessUnitId =
businessUnitId;
//权限
request.Privileges =
new RolePrivilege[] { rp };
service.Execute(request);
}
/// <summary>
/// 给安全角色移除权限
/// </summary>
/// <param name="service">服务</param>
/// <param name="privilergeId">安全角色</param>
public void RemovePrivilegeRole(IOrganizationService service, Guid privilergeId)
{
RemovePrivilegeRoleRequest roleRequest =
new RemovePrivilegeRoleRequest();
roleRequest.RoleId =
roleId;
roleRequest.PrivilegeId =
privilergeId;
service.Execute(roleRequest);
}
/// <summary>
/// 安全角色替换权限(删除以前的角色,添加现有的角色)
/// </summary>
/// <param name="service">服务</param>
/// <param name="businessUnitId">业务部门id</param>
/// <param name="privilegeId">权限id</param>
public void ReplacePrivilegeRpole(IOrganizationService service, Guid businessUnitId, Guid privilegeId)
{
ReplacePrivilegesRoleRequest roleRequest =
new ReplacePrivilegesRoleRequest();
roleRequest.RoleId =
roleId;
RolePrivilege rp =
new RolePrivilege();
//Basic: 1/4,Local : 1/2,Deep : 3/4,Global: 4/4 组织
rp.Depth =
PrivilegeDepth.Basic;
//权限
rp.PrivilegeId =
privilegeId;
//业务部门
rp.BusinessUnitId =
businessUnitId;
//权限
roleRequest.Privileges =
new RolePrivilege[] { rp };
service.Execute(roleRequest);
}
/// <summary>
/// 检索分派给指定角色的权限
/// </summary>
/// <param name="service">服务</param>
public void SearchPrivilegeRole(IOrganizationService service)
{
RetrieveRolePrivilegesRoleRequest request =
new RetrieveRolePrivilegesRoleRequest();
request.RoleId =
roleId;
ReplacePrivilegesRoleResponse response =
(ReplacePrivilegesRoleResponse)service.Execute(request);
if (response !=
null && response.Results !=
null)
{
ParameterCollection result =
response.Results;
}
}
/// <summary> ///
/// 删除安全角色 ///
/// </summary> ///
/// <param name="service">服务</param>
public void Delete(IOrganizationService service) { service.Delete(entityName, roleId); }
}
转载于:https://www.cnblogs.com/bennylam/p/9921515.html
相关资源:数据结构—成绩单生成器