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); }
    }
  • 相关阅读:
    iptables 增删查改
    在Ubuntu14.04上安装WordPress4搭建技术博客
    Revit 二次开发之 零件
    Revit 二次开发之 结构层次
    revit二次开发之 过滤器二FilteredElementCollector收集器
    Revit二次开发之 动态模型更新(DMU: Dynamic Model Update)功能
    revit二次开发之 过滤器一
    Revit 二次开发之标高参数
    Revit二次开发之 错误
    Visual Studio删除所有的注释和空行
  • 原文地址:https://www.cnblogs.com/bennylam/p/9921515.html
Copyright © 2011-2022 走看看