Получение текущего пользователя биллинга

Материал из 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

Личные инструменты