/** * 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')); }
/** * 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; } }
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)); }
/** * 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'); }