com.trackstudio.soap.service.prstatus
Class Prstatus

java.lang.Object
  extended by com.trackstudio.soap.service.prstatus.Prstatus

public class Prstatus
extends java.lang.Object

Класс описывает web-сервис для работы со статусами


Constructor Summary
Prstatus()
           
 
Method Summary
 java.lang.String clonePrstatus(java.lang.String sessionId, java.lang.String toUserId, java.lang.String prstatusId)
          Создается копия статуса (клонируется)
 java.lang.String createPrstatus(java.lang.String sessionId, java.lang.String toUserId, java.lang.String name)
          Создается статус
 void deletePrstatus(java.lang.String sessionId, java.lang.String prstatusId)
          Удаляет статус по ID
 PrstatusBean[] getAllViewablePrstatuses(java.lang.String sessionId)
          Возвращается список статусов, owner'ов которых мы можем "видеть", т.е.
 PrstatusBean[] getAvailablePrstatusList(java.lang.String sessionId, java.lang.String userId)
          Для пользователя, который создает ACL и его парентов достается список статусов, созданных ими, затем достаются все подчиненные статусы от собственного статуса пользователя плюс сам этот статус.
 PrstatusBean[] getCreatablePrstatusList(java.lang.String sessionId, java.lang.String userId)
          Возвращает список статусов, которые может создавать указанный пользователя
 PrstatusBean[] getEditablePrstatusList(java.lang.String sessionId)
          Возвращает списое статусов, которые может редактировать текущий пользователь
 java.lang.String[] getHandlerPrstatusNames(java.lang.String sessionId, java.lang.String taskId)
          Возвращает имена ответственных для задачи
 java.lang.String[] getSubmitterPrstatusNames(java.lang.String sessionId, java.lang.String taskId)
          Возвращает список имен авторов
 boolean isManagerAvailable(java.lang.String sessionId, java.lang.String userId, java.lang.String managerId)
          Проверяем, может ли один пользователь быть менеджером для другого.
 void setRoles(java.lang.String sessionId, java.lang.String prstatusId, java.lang.String[] allowed, java.lang.String[] denied)
          Устанавливает роли для пользователя
 void updatePrstatus(java.lang.String sessionId, 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

Prstatus

public Prstatus()
Method Detail

createPrstatus

public java.lang.String createPrstatus(java.lang.String sessionId,
                                       java.lang.String toUserId,
                                       java.lang.String name)
                                throws java.lang.Exception
Создается статус

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

clonePrstatus

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

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

updatePrstatus

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

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

deletePrstatus

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

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

getAvailablePrstatusList

public PrstatusBean[] getAvailablePrstatusList(java.lang.String sessionId,
                                               java.lang.String userId)
                                        throws java.lang.Exception
Для пользователя, который создает ACL и его парентов достается список статусов, созданных ими, затем достаются все подчиненные статусы от собственного статуса пользователя плюс сам этот статус. Возвращается сумма этих двух множеств

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

getEditablePrstatusList

public PrstatusBean[] getEditablePrstatusList(java.lang.String sessionId)
                                       throws java.lang.Exception
Возвращает списое статусов, которые может редактировать текущий пользователь

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

getAllViewablePrstatuses

public PrstatusBean[] getAllViewablePrstatuses(java.lang.String sessionId)
                                        throws java.lang.Exception
Возвращается список статусов, owner'ов которых мы можем "видеть", т.е. которые находятся в одной ветке с нами

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

getCreatablePrstatusList

public PrstatusBean[] getCreatablePrstatusList(java.lang.String sessionId,
                                               java.lang.String userId)
                                        throws java.lang.Exception
Возвращает список статусов, которые может создавать указанный пользователя

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

setRoles

public void setRoles(java.lang.String sessionId,
                     java.lang.String prstatusId,
                     java.lang.String[] allowed,
                     java.lang.String[] denied)
              throws java.lang.Exception
Устанавливает роли для пользователя

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

getHandlerPrstatusNames

public java.lang.String[] getHandlerPrstatusNames(java.lang.String sessionId,
                                                  java.lang.String taskId)
                                           throws java.lang.Exception
Возвращает имена ответственных для задачи

Parameters:
sessionId - сессия пользователя
taskId - ID задачи
Returns:
список имен ответственных
Throws:
java.lang.Exception - при необходимости

getSubmitterPrstatusNames

public java.lang.String[] getSubmitterPrstatusNames(java.lang.String sessionId,
                                                    java.lang.String taskId)
                                             throws java.lang.Exception
Возвращает список имен авторов

Parameters:
sessionId - сессия пользователя
taskId - ID задачи
Returns:
список имен авторов
Throws:
java.lang.Exception - при необходимости

isManagerAvailable

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

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


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