20.01.2014, 14:47 | #1 |
Участник
|
Как программно добавить пользователя в AX?
Возникла необходимость программно создавать пользователя в AX4, имеющего админские права. Захотел - сделал!
X++: public static void ppoAutoAddUsers(Args _args) { #Admin void addUserInfo(UserId _userId, NetworkAlias _alias, NetworkDomain _domain, Name _name) { UserGroupList ugList; UserInfo uInfo, adminRecord; SysUserInfo suInfo; xAxaptaUserManager mgr; xAxaptaUserDetails det; ; select firstonly adminRecord where adminRecord.Id == #AdminUser; ttsbegin; mgr = new xAxaptaUserManager(); det = mgr.getDomainUser(_domain, _alias); uInfo.clear(); uInfo.initValue(); uInfo.Id = _userId; uInfo.Sid = det.getUserSid(0); uInfo.NetworkAlias = _alias; uInfo.NetworkDomain = _domain; uInfo.Company = curext(); uInfo.Enable = NoYes::Yes; uInfo.Name = _name; uInfo.Language = adminRecord.Language; uInfo.HelpLanguage = adminRecord.Helplanguage; if (uInfo.validateWrite()) uInfo.write(); infolog.getUserSetup().setDefaults(uInfo); infolog.getUserSetup().setUserSetup(uInfo); suInfo.initValue(_userId); suInfo.Id = _userId; suInfo.Email = det.getUserMail(0); if (suInfo.validateWrite()) { suInfo.write(); } ugList.clear(); ugList.initValue(); ugList.UserId = _userId; ugList.GroupId = #AdminUserGroup; if (ugList.validateWrite()) ugList.write(); ttscommit; } ; addUserInfo("denis", "chernyakovd", "polypore.biz", "Chernyakov, Denis"); info('Done'); }
__________________
// no comments |
|
20.01.2014, 14:58 | #2 |
Участник
|
Они используются только для того чтобы получить SID (Идентификатор безопасности) и другие атрибуты учетной записи пользователя из домена.
Получить те же данные через SQL - дело техники http://habrahabr.ru/post/168699/ Последний раз редактировалось S.Kuskov; 20.01.2014 в 15:02. |
|
|
За это сообщение автора поблагодарили: dech (2). |
|
|