|
27.02.2007, 16:19 | #1 |
Участник
|
Сброс данных при логине
Привет.
1. текущий пользователь а1 имеет доступ к функциональности и hasSecuritykeyAccess(securityKeyNum(sk1)) возвращает true; 2. пользователь а2 не имеет доступа к этой функциональности и если войти под ним в систему hasSecuritykeyAccess(securityKeyNum(sk1)) возвращает false; 3. если зайти в систему как а1 и выполнить xSession.newUser('a2', ''), то теоритически hasSecuritykeyAccess(securityKeyNum(sk1)) должен вернуть false - практически возвращает true. Вопрос - как сбросить откешированные данные? (пробовал Dictionary::loginSettingsFlush(); Dictionary::dataFlush(); Dictionary::aodFlush(); if (logIn) { globalCache = SysGlobalCache::construct(); classFactory.parmGlobalCache(globalCache); } ) не помогло ... :-( |
|
27.02.2007, 16:23 | #2 |
NavAx
|
Это не помогло Повторный логин без перезапуска аксапты ?
|
|
27.02.2007, 16:29 | #3 |
Дмитрий Ерин
|
Сначала ламерский вопрос (а то лень искать ) - а что делает xSession.newUser('a2', '') ?
По существу вопроса: по идее права должны примениться при смене компании (то есть как версия - что-то типа: X++: changecompany(curext()) |
|
27.02.2007, 16:34 | #4 |
Участник
|
Цитата:
Description This method facilitates logging on a different user for the current session without terminating the Axapta session. It returns true when the new login was successful, false otherwise. Цитата:
Думаю пробовать надо в направлении ссылки raz: X++: xAppl.setDefaultCompany(userInfo.company);
SysSecurity::reload(false); |
|
27.02.2007, 16:40 | #5 |
Дмитрий Ерин
|
Цитата:
Хотя не стану спорить, что приведенный выше код, возможно, более корректен в общем случае. ЗЫ: сам ничего не проверял, все вышесказанное - предположения |
|
27.02.2007, 16:53 | #6 |
Участник
|
2 raz Спасибо за ссылку - попробовал - пока не помогает ... :-(
(продолжаю пробовать дальше ...) |
|