Получение текущего пользователя биллинга
Материал из BiTel WiKi
Версия от 10:53, 3 декабря 2009; Admin (Обсуждение | вклад)
Версия биллинга от 4.5
В конфурации сервера биллинга надо прописать jaas.subject=1, затем перезапустить сервер. В библиотеки скриптов добавьте, имя библиотеки billing_user (для примера).
import java.security.AccessController; import javax.security.auth.Subject; import bitel.billing.server.admin.bean.User; import bitel.billing.server.admin.bgsecure.bean.UserLoginModule.UserPrincipal; public User getCurrentUser() { Subject subject = Subject.getSubject( AccessController.getContext() ); if( subject != null ) { for( UserPrincipal userPrincipal : subject.getPrincipals( UserPrincipal.class ) ) { return userPrincipal.getUser(); } } return null; } public Integer getCurrentUserId() { Subject subject = Subject.getSubject( AccessController.getContext() ); if( subject != null ) { for( UserPrincipal userPrincipal : subject.getPrincipals( UserPrincipal.class ) ) { return userPrincipal.getUser().getID(); } } return null; }
Теперь можно вызывать эту функцию в BGBS скриптах или в XSLT шаблонах с помощью расширения http://wiki.bgbilling.ru/index.php/XSLT. Для XSLT скриптов удобнее написать функцию, возвращающую сразу имя текущего пользователя.
Тема в форуме: http://www.bgbilling.ru/forum/viewtopic.php?f=19&t=1342