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; }

        }

    }

crm操作权限的更多相关文章

  1. Dynamics CRM 2011 权限管理(转)

    http://www.cnblogs.com/LeoTang/p/3344265.html Dynamics CRM 2011 权限管理 CRM系统基于角色的权限主要通过部门.角色.用户.团队来 进行 ...

  2. Dynamics CRM 2011 权限管理

    CRM系统基于角色的权限主要通过部门.角色.用户.团队来进行控制.每一个实体记录的所有者(Owner)必然是某一个用户或团队.一个用户或团队必然归属于一个且只归属于一个部门,但团队的成员即用户可以来自 ...

  3. Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

  4. 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限

    先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自 ...

  5. 053医疗项目-模块五:权限设置-将用户操作权限写入Session

    权限管理指的是用户授权,与拦截器没有关系.拦截器只是一个技术,也可以用别的技术来实现的.别人问你权限管理,可不要和人家说什么拦截器.要说用户授权 前一篇文章是把实现了不同的用户呈现不用的菜单.这一篇文 ...

  6. RDIFramework.NET ━ 9.7 操作权限项管理 ━ Web部分

    RDIFramework.NET ━ .NET快速信息化系统开发框架 9.7 操作权限项管理 -Web部分 随着经济全球化趋势的发展和企业间竞争的加剧,企业对管理要求不断变化.提高,越来越多的信息都表 ...

  7. 【转】操作权限不够?教你开启Win7管理员帐户

    在Win7中进行一些设置,或修改某些文件时,经常会弹出当前帐户没有操作权限的提示,即使已经是管理员账户也不行.事实上,出于安全方面的考虑,默认情况下Win7系统的系统管理员Administrator账 ...

  8. Tornado 判断用户登录状态和操作权限(装饰器)

    判断是否登录: def authenticated(method): '''''' @functools.wraps(method) def wrapper(self, *args, **kwargs ...

  9. 打通MySQL的操作权限

    打通MySQL的操作权限 前面已经总结了<XAMPP的配置与使用>,虽然可以直接通过GUI控制面板去启动MySQL服务,但是有些相关的操作则需要在Windows中的CMD命令窗口中去对My ...

随机推荐

  1. android 在Fragment里添加Theme主题

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanc ...

  2. asp.net 弹出式日历控件 选择日期 Calendar控件

    原文地址:asp.net 弹出式日历控件 选择日期 Calendar控件 作者:逸苡 html代码: <%@ Page Language="C#" CodeFile=&quo ...

  3. Android 性能优化之使用MAT分析内存泄露问题

    我们平常在开发Android应用程序的时候,稍有不慎就有可能产生OOM,虽然JAVA有垃圾回收机,但也不能杜绝内存泄露,内存溢出等问题,随着科技的进步,移动设备的内存也越来越大了,但由于Android ...

  4. Styles and Themens(5)样式文件Style.xml中各元素的含义

    Style Resource See also Styles and Themes A style resource defines the format and look for a UI. A s ...

  5. 应付系统选项 Payables Options

    (N) AP > Setup > Options > Payables Options应付系统选项设置整个应付系统使用的控制项和默认值.我们可以在此窗口中设置默认值,从而简化供应商输 ...

  6. POJ 3126 Prime Path 解题报告(BFS & 双向BFS)

    题目大意:给定一个4位素数,一个目标4位素数.每次变换一位,保证变换后依然是素数,求变换到目标素数的最小步数. 解题报告:直接用最短路. 枚举1000-10000所有素数,如果素数A交换一位可以得到素 ...

  7. PHP位运算 详细说明

    在实际应用中可以做用户权限的应用我这里说到的权限管理办法是一个普遍采用的方法,主要是使用到”位运行符”操作,& 位与运算符.| 位或运行符.参与运算的如果是10进制数,则会被转换至2进制数参与 ...

  8. 腾讯微博OAuth2.0认证介绍

    腾讯微博开放平台,是基于腾讯微博系统,为广大开发者和用户提供的开放数据分享与传播平台. 广大开发者和用户登录平台后,就可以使用平台提供的开放API接口,创建应用从微博系统获取信息,或将新的信息传播到整 ...

  9. SDWebImage源码解读之SDWebImageDownloader

    SDWebImage源码解读之SDWebImageDownloader 第八篇 前言 SDWebImageDownloader这个类非常简单,作者的设计思路也很清晰,但是我想在这说点题外话. 如果有人 ...

  10. Unity光照图UV显示

    美术的同学觉得 Unity 光照图烘焙的不够美丽,需要在 ps 里修一修,但是不知道每个物体对应的光照图在哪个区域,UV 是如何分布的,于是要求写一个工具显示,于是有了下面这个: 打开场景自动读取当前 ...