crm操作权限
??? using System;
??? using Microsoft.Xrm.Sdk;
??? using Microsoft.Xrm.Sdk.Query;
??? using System.Collections.Generic;
??? using Microsoft.Crm.Sdk.Messages;
??? /// <summary>
??? /// 權限
??? /// </summary>
??? public class PrivilegeHelper
??? {
??????? public static readonly string entityName = "privilege";
??????? /// <summary>
??????? /// 查詢一個實體的權限
??????? /// 一般的實體都有8個主要的權限
??????? /// </summary>
??????? public List<Privilege> SearchPrivilegeByEntityName(IOrganizationService service, string name)
??????? {
??????????? List<Privilege> list = new List<Privilege>();
??????????? //一般的實體都有8個權限,這里如果實體是:account
??????????? //prvCreateAccount: 創建客戶,prvReadAccount: 讀取客戶記錄,prvWriteAccount: 改動客戶
??????????? //prvDeleteAccount: 刪除客戶,prvAppendAccount: 追加,prvAppendToAccount: 追加到
??????????? //prvAssignAccount: 分配客戶,prvShareAccount: 共享客戶
??????????? QueryExpression query = new QueryExpression();
??????????? query.EntityName = entityName;
??????????? query.ColumnSet = new ColumnSet("name");
??????????? query.Criteria.AddCondition(new ConditionExpression("name",ConditionOperator.Like,"prv%" + name));
??????????? EntityCollection ec = service.RetrieveMultiple(query);
??????????? if (ec != null && ec.Entities.Count > 0)
??????????? {
??????????????? foreach(Entity en in ec.Entities)
??????????????? {
??????????????????? Privilege p = new Privilege();
??????????????????? p.id = en.Id;
??????????????????? p.name = en["name"].ToString();
??????????????????? list.Add(p);
??????????????? }
??????????? }
??????????? return list;
??????? }
??????? /// <summary>
??????? /// 通過id查詢一個權限
??????? /// </summary>
??????? /// <param name="service">服務</param>
??????? /// <param name="privilegeId">權限id</param>
??????? public Privilege SearchPrivilegeById(IOrganizationService service,Guid privilegeId)
??????? {
??????????? Entity en = service.Retrieve(entityName, privilegeId, new ColumnSet("name"));
??????????? Privilege p = new Privilege() { id = privilegeId };
??????????? p.name = en["name"].ToString();
??????????? return p;
??????? }
??????? /// <summary>
??????? /// 查詢一個用戶具有的權限
??????? /// </summary>
??????? /// <param name="service">服務</param>
??????? /// <param name="userId">用戶</param>
??????? public void SearchPrivilegeByUserId(IOrganizationService service,Guid userId)
??????? {
??????????? RetrieveUserPrivilegesRequest request = new RetrieveUserPrivilegesRequest();
??????????? request.UserId = userId;
??????????? RetrieveUserPrivilegesResponse response = (RetrieveUserPrivilegesResponse)service.Execute(request);
??????????? if (response.RolePrivileges != null)
??????????? {
??????????????? RolePrivilege[] arrayResult = response.RolePrivileges;
??????????? }
??????? }
??????? /// <summary>
??????? /// 檢索系統中定義的特權集
??????? /// </summary>
??????? /// <param name="service">服務</param>
??????? public List<Privilege> SearchAllPrivilege(IOrganizationService service)
??????? {
??????????? List<Privilege> list = new List<Privilege>();
??????????? RetrievePrivilegeSetRequest request = new RetrievePrivilegeSetRequest();
??????????? RetrievePrivilegeSetResponse response = (RetrievePrivilegeSetResponse)service.Execute(request);
??????????? if (response.EntityCollection != null)
??????????? {
??????????????? EntityCollection ec = response.EntityCollection;
??????????????? if (ec != null && ec.Entities.Count > 0)
??????????????? {
??????????????????? foreach (Entity en in ec.Entities)
??????????????????? {
??????????????????????? Privilege p = new Privilege();
??????????????????????? p.id = en.Id;
??????????????????????? p.name = en["name"].ToString();
??????????????????????? list.Add(p);
??????????????????? }
??????????????? }
??????????? }
??????????? return list;
??????? }
??????? public class Privilege
??????? {
??????????? public Guid id { get; set; }
??????????? public string name { get; set; }
??????? }
??? }
轉載于:https://www.cnblogs.com/zfyouxi/p/3865202.html
總結
- 上一篇: JSP中文乱码问题终极解决方案(转)
- 下一篇: CentOs6.5下独立安装Nginx篇