コード例 #1
0
 private function getAssigneesUGroups(Tracker_Artifact $artifact)
 {
     $assignees_ugroups = array();
     foreach ($this->assignee_retriever->getAssignees($artifact) as $assignee) {
         $assignees_ugroups = array_merge($assignees_ugroups, $this->getUserUGroups($assignee, $artifact));
     }
     return $assignees_ugroups;
 }
コード例 #2
0
 private function userHavePermissionOnTracker(PFUser $user, Tracker_Artifact $artifact)
 {
     $permissions = $artifact->getTracker()->getAuthorizedUgroupsByPermissionType();
     foreach ($permissions as $permission_type => $ugroups) {
         switch ($permission_type) {
             case Tracker::PERMISSION_FULL:
                 foreach ($ugroups as $ugroup) {
                     if ($this->userBelongsToGroup($user, $artifact, $ugroup)) {
                         return true;
                     }
                 }
                 break;
             case Tracker::PERMISSION_SUBMITTER:
                 foreach ($ugroups as $ugroup) {
                     if ($this->userBelongsToGroup($user, $artifact, $ugroup)) {
                         // check that submitter is also a member
                         $submitter = $this->user_manager->getUserById($artifact->getSubmittedBy());
                         if ($this->userBelongsToGroup($submitter, $artifact, $ugroup)) {
                             return true;
                         }
                     }
                 }
                 break;
             case Tracker::PERMISSION_ASSIGNEE:
                 foreach ($ugroups as $ugroup) {
                     if ($this->userBelongsToGroup($user, $artifact, $ugroup)) {
                         // check that one of the assignees is also a member
                         $permission_assignee = new Tracker_Permission_PermissionRetrieveAssignee($this->user_manager);
                         foreach ($permission_assignee->getAssignees($artifact) as $assignee) {
                             if ($this->userBelongsToGroup($assignee, $artifact, $ugroup)) {
                                 return true;
                             }
                         }
                     }
                 }
                 break;
             case Tracker::PERMISSION_SUBMITTER_ONLY:
                 foreach ($ugroups as $ugroup) {
                     if ($this->userBelongsToGroup($user, $artifact, $ugroup)) {
                         if ($user->getId() == $artifact->getSubmittedBy()) {
                             return true;
                         }
                     }
                 }
                 break;
         }
     }
     return false;
 }
コード例 #3
0
 /**
  * Retrieve assignee recipients for a given artifact
  *
  * @param Tracker_Artifact $artifact
  *
  * @return Array of PFUser
  */
 function getRecipientsFromArtifact(Tracker_Artifact $artifact)
 {
     $permission_assignee = new Tracker_Permission_PermissionRetrieveAssignee($artifact->getUserManager());
     return $permission_assignee->getAssignees($artifact);
 }