zoukankan      html  css  js  c++  java
  • Role Helper

    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); }
    }
  • 相关阅读:
    洛谷 P1396 营救(二分答案)
    洛谷 P1807 最长路(toposort)
    洛谷 P1137 旅行计划(toposort)
    [bzoj3032][TYVJ P1924]七夕祭(环形均分纸牌,货仓选址)
    BZOJ3043 IncDec Sequence (差分)
    BZOJ2200 道路与航线(dijk+拓扑排序)
    P1462 通往奥格瑞玛的道路(二分+dijkstra)
    P1020 导弹拦截 O(nlogn)做法
    背包整理(01背包,完全背包,多重背包,分组背包)(待更新)
    [模板]树链剖分
  • 原文地址:https://www.cnblogs.com/bennylam/p/9921515.html
Copyright © 2011-2022 走看看