Изменение пользовательских профилей клиентов портала в Salesforce с помощью Apex - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть пользователь портала и два профиля, назначенные порталу. Я хочу запустить триггер, чтобы изменить профиль при выполнении некоторых условий.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2014

System.runAs (u) используется только в тестовых классах, для классов Apex вы не можете написать приведенный выше код

0 голосов
/ 04 декабря 2011

Да.Хотя DML запрещен для самого объекта Profile, вы можете изменить профиль пользователя (из руководства разработчика 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()); 
}
...