コード例 #1
0
ファイル: studygroup.php プロジェクト: ratbird/hope
 /**
  * offers specific member functions wrt perms
  *
  * @param string id of a studypgroup
  * @param string action that has to be performed
  * @param string status if applicable (e.g. tutor)
  *
  * @return void
  */
 function edit_members_action($id, $action, $status = '', $studipticket = false)
 {
     global $perm;
     $user = Request::get('user');
     $user = preg_replace('/[^\\w@.-]/', '', $user);
     if ($perm->have_studip_perm('tutor', $id)) {
         if (!$action) {
             $this->flash['success'] = _("Es wurde keine korrekte Option gewählt.");
         } elseif ($action == 'accept') {
             StudygroupModel::accept_user($user, $id);
             $this->flash['success'] = sprintf(_("Der Nutzer %s wurde akzeptiert."), get_fullname_from_uname($user, 'full', true));
         } elseif ($action == 'deny') {
             StudygroupModel::deny_user($user, $id);
             $this->flash['success'] = sprintf(_("Der Nutzer %s wurde nicht akzeptiert."), get_fullname_from_uname($user, 'full', true));
         } elseif ($action == 'cancelInvitation') {
             StudygroupModel::cancelInvitation($user, $id);
             $this->flash['success'] = sprintf(_("Die Einladung des Nutzers %s wurde gelöscht."), get_fullname_from_uname($user, 'full', true));
         } elseif ($perm->have_studip_perm('tutor', $id)) {
             if (!$perm->have_studip_perm('dozent', $id, get_userid($user)) || count(Course::find($id)->getMembersWithStatus('dozent')) > 1) {
                 if ($action == 'promote' && $perm->have_studip_perm('dozent', $id)) {
                     $status = $perm->have_studip_perm('tutor', $id, get_userid($user)) ? "dozent" : "tutor";
                     StudygroupModel::promote_user($user, $id, $status);
                     $this->flash['success'] = sprintf(_("Der Status des Nutzers %s wurde geändert."), get_fullname_from_uname($user, 'full', true));
                 } elseif ($action === "downgrade" && $perm->have_studip_perm('dozent', $id)) {
                     $status = $perm->have_studip_perm('dozent', $id, get_userid($user)) ? "tutor" : "autor";
                     StudygroupModel::promote_user($user, $id, $status);
                     $this->flash['success'] = sprintf(_("Der Status des Nutzers %s wurde geändert."), get_fullname_from_uname($user, 'full', true));
                 } elseif ($action == 'remove') {
                     $this->flash['question'] = sprintf(_("Möchten Sie wirklich den Nutzer %s aus der Studiengruppe entfernen?"), get_fullname_from_uname($user, 'full', true));
                     $this->flash['candidate'] = $user;
                 } elseif ($action == 'remove_approved' && check_ticket($studipticket)) {
                     StudygroupModel::remove_user($user, $id);
                     $this->flash['success'] = sprintf(_("Der Nutzer %s wurde aus der Studiengruppe entfernt."), get_fullname_from_uname($user, 'full', true));
                 }
             } else {
                 $this->flash['messages'] = array('error' => array('title' => _("Jede Studiengruppe muss mindestens einen Gruppengründer haben!")));
             }
         }
         //Für die QuickSearch-Suche:
         if (Request::get('choose_member_parameter') && Request::get('choose_member_parameter') !== _("Nutzer suchen")) {
             $this->flash['choose_member_parameter'] = Request::get('choose_member_parameter');
         }
         $this->redirect($this->url_for('course/studygroup/members/' . $id, array('view' => 'list')));
     } else {
         $this->redirect(URLHelper::getURL('seminar_main.php?auswahl=' . $id));
     }
 }