Exemplo n.º 1
0
 /**
  * Remove yourself as default deputy of the given boss.
  * @param $boss_id
  */
 public function delete_boss_action($boss_id)
 {
     if (deleteDeputy($GLOBALS['user']->id, $boss_id)) {
         PageLayout::postSuccess(sprintf(_('Sie wurden als Standardvertretung von %s entfernt.'), User::find($boss_id)->getFullname()));
     } else {
         PageLayout::postError(sprintf(_('Sie konnten nicht als Standardvertretung von %s entfernt werden.'), User::find($boss_id)->getFullname()));
     }
     $this->redirect($this->url_for('my_courses'));
 }
Exemplo n.º 2
0
 /**
  * Helper function to add dozents to a seminar.
  */
 private function addDozent($dozent)
 {
     $deputies_enabled = get_config('DEPUTIES_ENABLE');
     $sem = Seminar::GetInstance($this->course_id);
     if ($sem->addMember($dozent, "dozent")) {
         // Only applicable when globally enabled and user deputies enabled too
         if ($deputies_enabled) {
             // Check whether chosen person is set as deputy
             // -> delete deputy entry.
             if (isDeputy($dozent, $this->course_id)) {
                 deleteDeputy($dozent, $this->course_id);
             }
             // Add default deputies of the chosen lecturer...
             if (get_config('DEPUTIES_DEFAULTENTRY_ENABLE')) {
                 $deputies = getDeputies($dozent);
                 $lecturers = $sem->getMembers('dozent');
                 foreach ($deputies as $deputy) {
                     // ..but only if not already set as lecturer or deputy.
                     if (!isset($lecturers[$deputy['user_id']]) && !isDeputy($deputy['user_id'], $this->course_id)) {
                         addDeputy($deputy['user_id'], $this->course_id);
                     }
                 }
             }
         }
         // new dozent was successfully insert
         return MessageBox::success(sprintf(_('%s wurde hinzugefügt.'), get_title_for_status('dozent', 1, $sem->status)));
     } else {
         // sorry that was a fail
         return false;
     }
 }
Exemplo n.º 3
0
 public function switchdeputy_action($course_id, $newstatus)
 {
     $course = Seminar::getInstance($course_id);
     switch ($newstatus) {
         case 'dozent':
             $dozent = new CourseMember();
             $dozent->seminar_id = $course_id;
             $dozent->user_id = $GLOBALS['user']->id;
             $dozent->status = 'dozent';
             $dozent->comment = '';
             if ($dozent->store()) {
                 deleteDeputy($GLOBALS['user']->id, $course_id);
                 PageLayout::postSuccess(sprintf(_('Sie wurden als %s eingetragen.'), get_title_for_status('dozent', 1)));
             } else {
                 PageLayout::postError(sprintf(_('Sie konnten nicht als %s eingetragen werden.'), get_title_for_status('dozent', 1)));
             }
             break;
         case 'deputy':
             $dozent = Course::find($course_id)->members->findOneBy('user_id', $GLOBALS['user']->id);
             if (addDeputy($GLOBALS['user']->id, $course_id)) {
                 $dozent->delete();
                 PageLayout::postSuccess(_('Sie wurden als Vertretung eingetragen.'));
             } else {
                 PageLayout::postError(_('Sie konnten nicht als Vertretung eingetragen werden.'));
             }
             break;
     }
     $this->flash['open'] = "bd_personal";
     $this->redirect($this->url_for('course/basicdata/view/' . $course_id));
 }
Exemplo n.º 4
0
 /**
  * Stores the deputy settings of a user.
  */
 public function store_action()
 {
     $this->check_ticket();
     $delete = Request::optionArray('delete');
     if (count($delete) > 0) {
         $deleted = deleteDeputy($delete, $this->user->user_id);
         if ($deleted) {
             $this->reportSuccess($deleted == 1 ? _('Die Vertretung wurde entfernt.') : _('Es wurden %s Vertretungen entfernt.'), $deleted);
         } else {
             $this->reportError(_('Fehler beim Entfernen der Vertretung(en).'));
         }
     }
     if ($this->edit_about_enabled) {
         $deputies = getDeputies($this->user->user_id, true);
         $changes = Request::intArray('edit_about');
         $success = true;
         $changed = 0;
         foreach ($changes as $id => $state) {
             if (!in_array($id, $deleted) && $state != $deputies[$id]['edit_about']) {
                 $success = $success and setDeputyHomepageRights($id, $this->user->user_id, $state) > 0;
                 $changed += 1;
             }
         }
         if ($success && $changed > 0) {
             $this->reportSuccess(_('Die Einstellungen wurden gespeichert.'));
         } else {
             if ($changed > 0) {
                 $this->reportError(_('Fehler beim Speichern der Einstellungen.'));
             }
         }
     }
     $this->redirect('settings/deputies');
 }