Dynamics CRM Plugin 团队共享与共享撤销

撤销团队共享

   var revokeUserAccessReq = new RevokeAccessRequest
                {
                    Revokee = new EntityReference("LogicalName",Guid),//需要撤销共享的团队
                    Target = new EntityReference("LogicalName", Guid),//需要撤销的目标实体
                };
   SysService.Execute(revokeUserAccessReq);

团队共享

                if (group.Contains("new_globalteam"))
                {
                    GrantAccessRequest grantAccessRequest = new GrantAccessRequest()
                    {
                        Target = new EntityReference(ent.LogicalName, ent.Id),//共享的目标实体
                        PrincipalAccess = new PrincipalAccess()
                        {
                            Principal = new EntityReference(group.GetAttributeValue("new_globalteam").LogicalName, group.GetAttributeValue("new_globalteam").Id),//共享的团队
                            AccessMask = AccessRights.ReadAccess|AccessRights.WriteAccess//共享的权限
                        }
                    };
                    SysService.Execute(grantAccessRequest);
                }

共享方法

        /// 
        /// 共享记录(读与写)  需要添加引用Microsoft.Crm.Sdk.proxy;
        /// using Microsoft.Crm.Sdk.Messages;
        /// 
        /// 要共享给用户或者团队
        /// 要共享的记录
        private static void Grant(IOrganizationService service, EntityReference teamOrSystemUser, EntityReference record)
        {
            GrantAccessRequest grantAccessRequest = new GrantAccessRequest
            {
                Target = record,
                PrincipalAccess = new PrincipalAccess
                {
                    Principal = teamOrSystemUser,
                    AccessMask = AccessRights.WriteAccess | AccessRights.ReadAccess | 
                }
            };
            service.Execute(grantAccessRequest);
        }

 

你可能感兴趣的:(Dynamics,CRM,Plugin)