示例#1
0
 /**
  * Add group membership (or list users if none chosen).
  */
 function addMembership($args)
 {
     $groupId = isset($args[0]) ? (int) $args[0] : 0;
     $userId = isset($args[1]) ? (int) $args[1] : null;
     $groupMembershipDao =& DAORegistry::getDAO('GroupMembershipDAO');
     // If a user has been selected, add them to the group.
     // Otherwise list users.
     if ($userId !== null) {
         list($journal, $group, $user) = GroupHandler::validate($groupId, $userId);
         // A valid user has been chosen. Add them to
         // the membership list and redirect.
         // Avoid duplicating memberships.
         $groupMembership =& $groupMembershipDao->getMembership($group->getGroupId(), $user->getUserId());
         if (!$groupMembership) {
             $groupMembership =& new GroupMembership();
             $groupMembership->setGroupId($group->getGroupId());
             $groupMembership->setUserId($user->getUserId());
             // For now, all memberships are displayed in About
             $groupMembership->setAboutDisplayed(true);
             $groupMembershipDao->insertMembership($groupMembership);
         }
         Request::redirect(null, null, 'groupMembership', $group->getGroupId());
     } else {
         list($journal, $group) = GroupHandler::validate($groupId);
         GroupHandler::setupTemplate($group, true);
         $searchType = null;
         $searchMatch = null;
         $search = $searchQuery = Request::getUserVar('search');
         $searchInitial = Request::getUserVar('searchInitial');
         if (isset($search)) {
             $searchType = Request::getUserVar('searchField');
             $searchMatch = Request::getUserVar('searchMatch');
         } else {
             if (isset($searchInitial)) {
                 $searchInitial = String::strtoupper($searchInitial);
                 $searchType = USER_FIELD_INITIAL;
                 $search = $searchInitial;
             }
         }
         $roleDao =& DAORegistry::getDAO('RoleDAO');
         $users = $roleDao->getUsersByRoleId(null, $journal->getJournalId(), $searchType, $search, $searchMatch);
         $templateMgr =& TemplateManager::getManager();
         $templateMgr->assign('searchField', $searchType);
         $templateMgr->assign('searchMatch', $searchMatch);
         $templateMgr->assign('search', $searchQuery);
         $templateMgr->assign('searchInitial', Request::getUserVar('searchInitial'));
         $templateMgr->assign_by_ref('users', $users);
         $templateMgr->assign('fieldOptions', array(USER_FIELD_FIRSTNAME => 'user.firstName', USER_FIELD_LASTNAME => 'user.lastName', USER_FIELD_USERNAME => 'user.username', USER_FIELD_EMAIL => 'user.email'));
         $templateMgr->assign('alphaList', explode(' ', Locale::translate('common.alphaList')));
         $templateMgr->assign_by_ref('group', $group);
         $templateMgr->display('manager/groups/selectUser.tpl');
     }
 }