使用Apex在Salesforce中更改客户门户用户配置文件

时间:2011-11-09 23:33:39

标签: salesforce apex-code

我有一个门户网站用户和两个分配给门户网站的配置文件。 我希望在满足某些条件时运行触发器来更改配置文件。

这可能吗?

2 个答案:

答案 0 :(得分:0)

是。虽然Profile对象本身有DML is forbidden,但您可以更改用户的配置文件(来自Apex开发人员指南):

Profile p = [SELECT Id FROM Profile WHERE Name='Standard User'];
User u = new User(Alias = 'standt', Email='standarduser@testorg.com',
   EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
   LocaleSidKey='en_US', ProfileId = p.Id, // <--- 
   TimeZoneSidKey='America/Los_Angeles', UserName='standarduser@testorg.com');

System.runAs(u) 
{
    // The following code runs as user 'u'
    System.debug('Current User: ' + UserInfo.getUserName());
    System.debug('Current Profile: ' + UserInfo.getProfileId()); 
}

答案 1 :(得分:0)

System.runAs(u)仅在Test Classes中使用,对于Apex类,您无法编写上述代码