예제 #1
0
 /**
  * Получить роли по идентификатору задачи выбранного сотрудника 
  * @param CUserRole $key
  * @param CUser $user
  * @return CArrayList
  */
 public static function getRolesByTaskByUser(CUserRole $key, CUser $user)
 {
     $roles = new CArrayList();
     $users = new CArrayList();
     foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_IN_GROUPS, "user_id = '" . $user->getId() . "'")->getItems() as $item) {
         $user = new CUser($item);
         $users->add($user->getId(), $user);
     }
     foreach (CStaffManager::getRolesByTask($key)->getItems() as $role) {
         foreach ($users->getItems() as $user) {
             if ($role->user_group_id == $user->group_id) {
                 $roles->add($role->getId(), $role);
                 self::getCacheRolesGroups()->add($role->id, $role);
             }
         }
     }
     return $roles;
 }