CRM operation security role

Source: Internet
Author: User

Using system;
Using Microsoft. xrm. SDK;
Using Microsoft. CRM. SDK. messages;
Using system. Collections. Generic;

/// <Summary>
/// Security role
/// </Summary>
Public class rolehelper
{
Public static readonly string entityname = "role ";
Public guid roleid = guid. empty;

/// <Summary>
/// Create a security role
/// </Summary>
/// <Param name = "service"> service </param>
/// <Param name = "name"> role name </param>
/// <Param name = "unitid"> business department </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>
/// Modify the security role
/// </Summary>
/// <Param name = "service"> service </param>
/// <Param name = "name"> role name </param>
/// <Param name = "unitid"> business department </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>
/// Add permissions to the security role
/// </Summary>
/// <Param name = "service"> service </param>
/// <Param name = "businessunitid"> business department ID </param>
/// <Param name = "privilegeid"> permission 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 Organization
RP. Depth = privilegedepth. Basic;
// Permission
RP. privilegeid = privilegeid;
// Business department
RP. businessunitid = businessunitid;
// Permission
Request. Privileges = new roleprivilege [] {RP };

Service. Execute (request );
}

/// <Summary>
/// Remove permissions from the security role
/// </Summary>
/// <Param name = "service"> service </param>
/// <Param name = "privilergeid"> security role </param>
Public void removeprivilegerole (iorganizationservice service, guid privilergeid)
{
Removeprivilegerolerequest rolerequest = new removeprivilegerolerequest ();
Rolerequest. roleid = roleid;
Rolerequest. privilegeid = privilergeid;
Service. Execute (rolerequest );
}

/// <Summary>
/// Security role replacement permission (delete previous roles and add existing roles)
/// </Summary>
/// <Param name = "service"> service </param>
/// <Param name = "businessunitid"> business department ID </param>
/// <Param name = "privilegeid"> permission 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 Organization
RP. Depth = privilegedepth. Basic;
// Permission
RP. privilegeid = privilegeid;
// Business department
RP. businessunitid = businessunitid;
// Permission
Rolerequest. Privileges = new roleprivilege [] {RP };

Service. Execute (rolerequest );
}

/// <Summary>
/// Retrieve the permissions assigned to a specified role
/// </Summary>
/// <Param name = "service"> 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>
/// Delete a security role
/// </Summary>
/// <Param name = "service"> service </param>
Public void Delete (iorganizationservice Service)
{
Service. Delete (entityname, roleid );
}
}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.