protected function buildIdentity($userID) { $userData = $this->usersModel->get($userID); if (!$userData) { throw new \Nette\Security\AuthenticationException('Neexistují odpovídající data o uživateli.', self::FAILURE); } unset($userData->id); $membershipData = $this->membershipModel->query("SELECT `group`.* FROM membership JOIN `group` ON `group`.id = membership.group_id WHERE membership.user_id = " . $userID)->fetchAll(); $roles = array(); foreach ($membershipData as $record) { $roles[] = $record->role_name; } return new \Nette\Security\Identity($userID, $roles, $userData); }
protected function buildIdentity($userID) { $userData = $this->usersModel->get($userID); if (!$userData) { throw new \Nette\Security\AuthenticationException('Neexistují odpovídající data o uživateli.', self::FAILURE); } unset($userData->id); $membershipData = $this->membershipModel->query("SELECT `group`.* FROM membership JOIN `group` ON `group`.id = membership.group_id WHERE membership.user_id = " . $userID)->fetchAll(); $roles = array(); foreach ($membershipData as $record) { $roles[] = $record->role_name; } $settings = $this->usersModel->query("SELECT * FROM `user_setting` WHERE user_id = {$userID}")->fetch(); if (!$settings) { $this->usersModel->query("INSERT INTO `user_setting` (`user_id`) VALUES ({$userID})"); $settings = $this->usersModel->query("SELECT * FROM `user_setting` WHERE user_id = {$userID}")->fetch(); } $settings = $settings->toArray(); unset($settings["user_id"]); $userData["settings"] = $settings; return new \Nette\Security\Identity($userID, $roles, $userData); }
public function actionId($id) { $record = $this->model->get($id); if ($record) { if ($record->status == 0 && ($this->user->isInRole("administrator") || $this->user->id == $record->created_by)) { $this->template->editable = true; } else { $this->template->editable = false; } $this->template->work = $record; $this->template->statuses = $this->statuses; $this->template->maker = $this->userModel->get($record->created_by); } else { $this->flashMessage("Takové zadání práce neexistuje.", "danger"); $this->redirect("default"); } }
public function passwordFormSucceeded($form, $values) { $id = $this->user->id; unset($values->id); $data = $this->model->get($id); if ($data) { if ($data->email) { try { $this->localUserModel->add($id, $values->password); $this->flashMessage("Heslo bylo nastaveno.", "success"); $this->redirect("default"); } catch (Exception $e) { $this->flashMessage("Nastavení hesla se nepodařilo.", "danger"); } } else { $this->flashMessage("Nemáte nastavenou emailovou adresu. Není ji tak možné ho použít jako přihlašovací jméno.", "danger"); } } else { $this->flashMessage("Takový účet neexistuje.", "warning"); } $this->redirect("default"); }
public function addMembershipFormSucceeded($form, $values) { $data = $this->model->get($values->id); if ($data && $this->user->isInRole("administrator")) { try { $this->membershipModel->in($values->id, $values->selection); } catch (Exception $e) { $this->flashMessage("Přidání do skupiny se nepodařilo.", "danger"); } } else { $this->flashMessage("Nemáte oprávnění tímto způsobem přidávat někoho do skupiny.", "danger"); } if (!$this->isAjax()) { $this->redirect('this'); } else { $this->template->membership = $this->membershipModel->userIsMember($values->id); $this->invalidateControl('membershipList'); $this->invalidateControl('flashMessages'); $form["selection"]->setItems($this->membershipModel->userIsNotMemberOfGroupsAsArray($values->id)); $form["selection"]->setValue(null); $this->invalidateControl('addMembershipForm'); } }