com.trackstudio.securedkernel
Class SecuredPrstatusAdapterManager

java.lang.Object
  extended by com.trackstudio.securedkernel.SecuredPrstatusAdapterManager

public class SecuredPrstatusAdapterManager
extends java.lang.Object

Класс SecuredPrstatusAdapterManager содержит методы для работы со статусами пользователей


Constructor Summary
SecuredPrstatusAdapterManager()
           
 
Method Summary
 java.lang.String clonePrstatus(SessionContext sc, java.lang.String toUserId, java.lang.String prstatusId)
          Создается копия статуса (клонируется)
 java.lang.String createPrstatus(SessionContext sc, java.lang.String userId, java.lang.String name)
          Создается статус
 void deletePrstatus(SessionContext sc, java.lang.String prstatusId)
          Удаляет статус по ID
 java.util.ArrayList<SecuredPrstatusBean> getAllViewablePrstatuses(SessionContext sc)
          Возвращается список статусов, owner'ов которых мы можем "видеть", т.е.
 java.util.ArrayList<SecuredPrstatusBean> getAvailablePrstatusList(SessionContext sc, java.lang.String userId)
          Для пользователя, который создает ACL и его парентов достается список статусов, созданных ими, затем достаются все подчиненные статусы от собственного статуса пользователя плюс сам этот статус.
 java.util.ArrayList<SecuredPrstatusBean> getCreatablePrstatusList(SessionContext sc, java.lang.String userId)
          Возвращает список статусов, которые может создавать указанный пользователя
 java.util.ArrayList<SecuredPrstatusBean> getEditablePrstatusList(SessionContext sc)
          Возвращает списое статусов, которые может редактировать текущий пользователь
 boolean isManagerAvailable(SessionContext sc, java.lang.String userId, java.lang.String managerId)
          Проверяем, может ли один пользователь быть менеджером для другого.
 void setRoles(SessionContext sc, java.lang.String prstatusId, java.util.List<java.lang.String> allowed, java.util.List<java.lang.String> denied)
          Устанавливает роли для пользователя
 void updatePrstatus(SessionContext sc, java.lang.String prstatusId, java.lang.String name, java.lang.String preferences)
          Редактирует статус
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SecuredPrstatusAdapterManager

public SecuredPrstatusAdapterManager()
Method Detail

createPrstatus

public java.lang.String createPrstatus(SessionContext sc,
                                       java.lang.String userId,
                                       java.lang.String name)
                                throws GranException
Создается статус

Parameters:
sc - сессия пользователя
name - Название статуса
userId - ID пользователя, который создает статус
Returns:
ID созданного статуса
Throws:
GranException - при необходимости

clonePrstatus

public java.lang.String clonePrstatus(SessionContext sc,
                                      java.lang.String toUserId,
                                      java.lang.String prstatusId)
                               throws GranException
Создается копия статуса (клонируется)

Parameters:
sc - сессия пользователя
prstatusId - ID копируемого статуса
toUserId - ID пользователя
Returns:
ID созданного статуса
Throws:
GranException - при необходимости

updatePrstatus

public void updatePrstatus(SessionContext sc,
                           java.lang.String prstatusId,
                           java.lang.String name,
                           java.lang.String preferences)
                    throws GranException
Редактирует статус

Parameters:
sc - сессия пользователя
prstatusId - ID редактируемого статуса
name - Название статуса
preferences - Настройки статуса
Throws:
GranException - при необходимости

deletePrstatus

public void deletePrstatus(SessionContext sc,
                           java.lang.String prstatusId)
                    throws GranException
Удаляет статус по ID

Parameters:
sc - сессия пользователя
prstatusId - ID удаляемого статуса
Throws:
GranException - при необходимости

getAvailablePrstatusList

public java.util.ArrayList<SecuredPrstatusBean> getAvailablePrstatusList(SessionContext sc,
                                                                         java.lang.String userId)
                                                                  throws GranException
Для пользователя, который создает ACL и его парентов достается список статусов, созданных ими, затем достаются все подчиненные статусы от собственного статуса пользователя плюс сам этот статус. Возвращается сумма этих двух множеств

Parameters:
sc - сессия пользователя
userId - ID пользователя
Returns:
Список статусов
Throws:
GranException - при необходимости
See Also:
Prstatus

getEditablePrstatusList

public java.util.ArrayList<SecuredPrstatusBean> getEditablePrstatusList(SessionContext sc)
                                                                 throws GranException
Возвращает списое статусов, которые может редактировать текущий пользователь

Parameters:
sc - сессия пользователя
Returns:
список статусов
Throws:
GranException - при необходимости
See Also:
SecuredPrstatusBean

getAllViewablePrstatuses

public java.util.ArrayList<SecuredPrstatusBean> getAllViewablePrstatuses(SessionContext sc)
                                                                  throws GranException
Возвращается список статусов, owner'ов которых мы можем "видеть", т.е. которые находятся в одной ветке с нами

Parameters:
sc - сессия пользователя
Returns:
список статусов
Throws:
GranException - при необходимости
See Also:
SecuredPrstatusBean

getCreatablePrstatusList

public java.util.ArrayList<SecuredPrstatusBean> getCreatablePrstatusList(SessionContext sc,
                                                                         java.lang.String userId)
                                                                  throws GranException
Возвращает список статусов, которые может создавать указанный пользователя

Parameters:
sc - сессия пользователя
userId - ID пользователя
Returns:
список статусов
Throws:
GranException - при необходимости
See Also:
Prstatus

setRoles

public void setRoles(SessionContext sc,
                     java.lang.String prstatusId,
                     java.util.List<java.lang.String> allowed,
                     java.util.List<java.lang.String> denied)
              throws GranException
Устанавливает роли для пользователя

Parameters:
sc - сессия пользователя
prstatusId - ID статуса пользователя
allowed - Устанавливаемые роли
denied - Удаляемые роли
Throws:
GranException - при неободимости

isManagerAvailable

public boolean isManagerAvailable(SessionContext sc,
                                  java.lang.String userId,
                                  java.lang.String managerId)
                           throws GranException
Проверяем, может ли один пользователь быть менеджером для другого.
Для userId и managerId достаем соответствующие prstatus и сравниваем. Если они не одинаковы, то берем parent-статус от пользовательского и снова сравниваем со статусом менеджера. Так продолжаем, пока не дойдем до верха, либо не найдем совпадающие статусы. Если статусы находятся в одной ветви, и статус managerId выше, чем статус userId, проверяем, находятся ли managerId и владелец статуса userId в одной ветке, причем managerId должен являться parent-ом по отношению к владельцу статуса. Т.е. иметь права редактирования на этот статус, фактически. Если такие условия выполняются, то возвращаем true.

Parameters:
sc - сессия пользователя
userId - Пользователь, для которого проверяем.
managerId - Потенциальный менеджер
Returns:
true - если может
Throws:
GranException - при необходимости


Copyright © 2002-2009 TrackStudio, Ltd. All Rights Reserved.