我有一个门户网站用户和两个分配给门户网站的配置文件。 我希望在满足某些条件时运行触发器来更改配置文件。
这可能吗?
答案 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类,您无法编写上述代码