Пример #1
0
 /**
  * ユーザ・グループ検索機能を提供します
  *
  * @param string $title 項目名として表示させる文字列
  * @param string $pluginModel モデル名
  * @param int $roomId ルームID
  * @param array $selectUsers 選択済みユーザ配列
  * @return string HTML tags
  */
 public function select($title = '', $pluginModel = 'GroupsUser', $roomId = null, $selectUsers = array())
 {
     if (!isset($roomId)) {
         $roomId = Space::getRoomIdRoot(Space::COMMUNITY_SPACE_ID);
     }
     if ($title === '') {
         $title = __d('groups', 'User select');
     }
     return $this->_View->element('Groups.select', array('title' => $title, 'pluginModel' => $pluginModel, 'roomId' => $roomId, 'selectUsers' => $selectUsers));
 }
Пример #2
0
 /**
  * PrivateSpaceルームの生成
  *
  * @param array $data デフォルト値
  * @return array PrivateSpaceルーム配列
  */
 public function createRoom($data = array())
 {
     $this->loadModels(['Language' => 'M17n.Language', 'Room' => 'Rooms.Room', 'RoomsLanguage' => 'Rooms.RoomsLanguage']);
     $parentRoom = $this->Room->find('first', array('recursive' => -1, 'fields' => array('space_id', 'active', 'need_approval', 'page_layout_permitted'), 'conditions' => array('id' => Space::getRoomIdRoot(Space::PRIVATE_SPACE_ID))));
     $result = $this->Room->create(Hash::merge(array('id' => null, 'root_id' => Space::getRoomIdRoot(Space::PRIVATE_SPACE_ID), 'parent_id' => Space::getRoomIdRoot(Space::PRIVATE_SPACE_ID), 'default_role_key' => Role::ROOM_ROLE_KEY_ROOM_ADMINISTRATOR, 'default_participation' => false), $parentRoom['Room']));
     $languages = $this->Language->getLanguages();
     App::uses('L10n', 'I18n');
     $L10n = new L10n();
     foreach ($languages as $i => $language) {
         $catalog = $L10n->catalog($language['Language']['code']);
         $roomsLanguage = $this->RoomsLanguage->create(array('id' => null, 'language_id' => $language['Language']['id'], 'room_id' => null, 'name' => __d('private_space', $catalog['language'])));
         $result['RoomsLanguage'][$i] = $roomsLanguage['RoomsLanguage'];
     }
     $result['Page']['parent_id'] = null;
     return $result;
 }
Пример #3
0
 /**
  * Before migration callback
  *
  * @param string $direction Direction of migration process (up or down)
  * @return bool Should process continue
  */
 public function before($direction)
 {
     $pluginName = $this->records['Plugin'][0]['key'];
     $this->records['PluginsRoom'] = array(array('room_id' => Space::getRoomIdRoot(Space::WHOLE_SITE_ID, 'Room'), 'plugin_key' => $pluginName), array('room_id' => Space::getRoomIdRoot(Space::PUBLIC_SPACE_ID, 'Room'), 'plugin_key' => $pluginName), array('room_id' => Space::getRoomIdRoot(Space::PRIVATE_SPACE_ID, 'Room'), 'plugin_key' => $pluginName), array('room_id' => Space::getRoomIdRoot(Space::COMMUNITY_SPACE_ID, 'Room'), 'plugin_key' => $pluginName));
     return true;
 }
Пример #4
0
 /**
  * It gets a string attached user information to the group
  *
  * @param array $userIdArr GroupsUser.user_id
  * @param int $roomId Room.id
  * @return array Group users array
  * @SuppressWarnings(PHPMD.BooleanArgumentFlag)
  */
 public function getGroupUsers($userIdArr, $roomId = false)
 {
     if ($roomId === false) {
         $roomId = Space::getRoomIdRoot(Space::COMMUNITY_SPACE_ID);
     }
     if (empty($userIdArr)) {
         return array();
     }
     $this->loadModels(['User' => 'Users.User', 'UploadFile' => 'Files.UploadFile', 'RolesRoomsUser' => 'Rooms.RolesRoomsUser']);
     $this->User->prepare();
     $rolesRoomsUsers = $this->RolesRoomsUser->getRolesRoomsUsers(array('Room.id' => $roomId, 'RolesRoomsUser.user_id' => $userIdArr));
     $roomUserIdArr = Hash::extract($rolesRoomsUsers, '{n}.RolesRoomsUser.user_id');
     if (empty($roomUserIdArr)) {
         return array();
     }
     $groupUsers = $this->User->find('all', array('recursive' => -1, 'fields' => array('User.*', 'UploadFile.*'), 'conditions' => array($this->User->alias . '.id' => $roomUserIdArr, $this->User->alias . '.is_deleted' => false), 'joins' => array(array('table' => $this->UploadFile->table, 'alias' => $this->UploadFile->alias, 'type' => 'LEFT', 'conditions' => array($this->User->alias . '.id' . ' = ' . $this->UploadFile->alias . '.content_key', $this->UploadFile->alias . '.field_name' => UserAttribute::AVATAR_FIELD)))));
     return $groupUsers;
 }
Пример #5
0
 /**
  * グループ取得処理
  *
  * @param int|array $groupId グループID
  * @param int $roomId ルームID
  * @return mixed On success Model::$groupUsers
  * @throws InternalErrorException
  * @SuppressWarnings(PHPMD.BooleanArgumentFlag)
  */
 public function getGroupUser($groupId, $roomId = false)
 {
     if ($roomId === false) {
         $roomId = Space::getRoomIdRoot(Space::COMMUNITY_SPACE_ID);
     }
     $groups = $this->find('all', array('fields' => array('Group.id', 'Group.name', 'Group.modified'), 'conditions' => array('Group.' . $this->primaryKey => $groupId, 'Group.created_user' => Current::read('User.id')), 'order' => array('Group.created ASC'), 'recursive' => 1));
     $userIdArr = Hash::extract($groups, '{n}.GroupsUser.{n}.user_id');
     $groupUsers = $this->GroupsUser->getGroupUsers($userIdArr, $roomId);
     return $groupUsers;
 }