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; }
}
}
crm操作权限的更多相关文章
- Dynamics CRM 2011 权限管理(转)
http://www.cnblogs.com/LeoTang/p/3344265.html Dynamics CRM 2011 权限管理 CRM系统基于角色的权限主要通过部门.角色.用户.团队来 进行 ...
- Dynamics CRM 2011 权限管理
CRM系统基于角色的权限主要通过部门.角色.用户.团队来进行控制.每一个实体记录的所有者(Owner)必然是某一个用户或团队.一个用户或团队必然归属于一个且只归属于一个部门,但团队的成员即用户可以来自 ...
- Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限
# sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...
- 用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限
先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自 ...
- 053医疗项目-模块五:权限设置-将用户操作权限写入Session
权限管理指的是用户授权,与拦截器没有关系.拦截器只是一个技术,也可以用别的技术来实现的.别人问你权限管理,可不要和人家说什么拦截器.要说用户授权 前一篇文章是把实现了不同的用户呈现不用的菜单.这一篇文 ...
- RDIFramework.NET ━ 9.7 操作权限项管理 ━ Web部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 9.7 操作权限项管理 -Web部分 随着经济全球化趋势的发展和企业间竞争的加剧,企业对管理要求不断变化.提高,越来越多的信息都表 ...
- 【转】操作权限不够?教你开启Win7管理员帐户
在Win7中进行一些设置,或修改某些文件时,经常会弹出当前帐户没有操作权限的提示,即使已经是管理员账户也不行.事实上,出于安全方面的考虑,默认情况下Win7系统的系统管理员Administrator账 ...
- Tornado 判断用户登录状态和操作权限(装饰器)
判断是否登录: def authenticated(method): '''''' @functools.wraps(method) def wrapper(self, *args, **kwargs ...
- 打通MySQL的操作权限
打通MySQL的操作权限 前面已经总结了<XAMPP的配置与使用>,虽然可以直接通过GUI控制面板去启动MySQL服务,但是有些相关的操作则需要在Windows中的CMD命令窗口中去对My ...
随机推荐
- 处理MySQL数据库出现大量Locked的一个案例 (转)
本文转自:http://blog.itpub.net/7607759/viewspace-696781/ 做为一款轻量级数据库软件,MySQL在使用过程中遇到访问速度慢,或者无法响应这类的问题,解决方 ...
- ASP.NET MVC 入门介绍 (上)
MVC模式 MVC模式是一种软件架构模式.它把软件系统分为三个部分:模型(Model),视图(View)和控制器(Controller).MVC模式最早由Trygve Reenskaug在1974年提 ...
- [LeetCode#272] Closest Binary Search Tree Value II
Problem: Given a non-empty binary search tree and a target value, find k values in the BST that are ...
- visual studio 2012更换皮肤、功能添加
首先在vs2012的菜单:工具->扩展和更新,打开扩展和更新窗口,点击左侧“联机”,搜索栏里面输入Theme Editor.然后点击按钮,安装之后,在工具->选项->环境常规 面板上 ...
- [NYOJ 43] 24 Point game
24 Point game 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 There is a game which is called 24 Point game ...
- keychain中我的证书与证书, p12与pem, apns, 推送
如果在A电脑上生成 的apns, 到B电脑上导入此文件时, 在 "我的证书"中找不到, 要去"证书"才能找到, 因为 创建时的csr不是本机生成的. 那这样的话 ...
- bootm命令中地址参数,内核加载地址以及内核入口地址
bootm命令只能用来引导经过mkimage构建了镜像头的内核镜像文件以及根文件镜像,对于没有用mkimage对内核进行处理的话,那直接把内核下载到连接脚本中指定的加载地址0x30008000再运行就 ...
- Node.js 创建第一个应用
如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi. 从这个角度看,整个"接收 HTTP 请求并提供 ...
- hadoop学习笔记——基础知识及安装
1.核心 HDFS 分布式文件系统 主从结构,一个namenoe和多个datanode, 分别对应独立的物理机器 1) NameNode是主服务器,管理文件系统的命名空间和客户端对文件的访问操 ...
- HDU 2191
思路:简单动态规划,多重背包转化成0 1背包问题 #include<stdio.h> #include<string.h> int a[101][2001],rcw[2001] ...