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

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Версия биллинга от 4.5 В конфурации сервера биллинга надо прописать jaas.subject=1, затем перезапустить серв...)
 
(2 промежуточные версии не показаны)
Строка 1: Строка 1:
-
Версия биллинга от 4.5
+
Версия биллинга от 4.6.
-
В конфурации сервера биллинга надо прописать jaas.subject=1, затем перезапустить сервер. В библиотеки скриптов добавьте, имя библиотеки '''billing_user''' (для примера).
+
В конфурации сервера биллинга надо прописать jaas.subject=1, затем перезапустить сервер. Создайте в библиотеке скриптов либо непосредственно в теле скрипта функцию.
<source lang="java">
<source lang="java">
Строка 22: Строка 22:
   return null;
   return null;
}
}
 +
</source>
-
public Integer getCurrentUserId()
+
В скриптах вызов функции имеет смысл только для синхронных событий, генерируемых в сервере биллинга. При создании функции как библиотечной возможен её вызов в XSLT шаблонах с помощью расширения http://wiki.bgbilling.ru/index.php/XSLT.
-
{
+
-
  Subject subject = Subject.getSubject( AccessController.getContext() );
+
-
  if( subject != null )
+
-
  {
+
-
      for( UserPrincipal userPrincipal : subject.getPrincipals( UserPrincipal.class ) )
+
-
      {
+
-
        return userPrincipal.getUser().getID();
+
-
      }
+
-
  }
+
-
 
+
-
  return null;
+
-
}
+
-
</source>
+
-
Теперь можно вызывать эту функцию в BGBS скриптах или в XSLT шаблонах с помощью расширения http://wiki.bgbilling.ru/index.php/XSLT. Для XSLT скриптов удобнее написать функцию, возвращающую сразу имя текущего пользователя.
 
Тема в форуме: http://www.bgbilling.ru/forum/viewtopic.php?f=19&t=1342
Тема в форуме: http://www.bgbilling.ru/forum/viewtopic.php?f=19&t=1342

Текущая версия на 13:37, 4 декабря 2009

Версия биллинга от 4.6.

В конфурации сервера биллинга надо прописать jaas.subject=1, затем перезапустить сервер. Создайте в библиотеке скриптов либо непосредственно в теле скрипта функцию.

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;
}

В скриптах вызов функции имеет смысл только для синхронных событий, генерируемых в сервере биллинга. При создании функции как библиотечной возможен её вызов в XSLT шаблонах с помощью расширения http://wiki.bgbilling.ru/index.php/XSLT.


Тема в форуме: http://www.bgbilling.ru/forum/viewtopic.php?f=19&t=1342

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