예제 #1
0
 public function osobaEditFormSucceeded(Form $form, $values)
 {
     if (!$this->user->isLoggedIn()) {
         $this->flashMessage('Tato funkce je pouze pro registrované. Pro pokračování se přihlašte, prosím.');
         $this->redirect('Sign:in');
     }
     if (!$this->user->isInRole('spravce') && $this->user->id != $values->id) {
         $this->flashMessage('Omlouváme se, ale tato funkce je pouze pro správce.', 'warning');
         $this->redirect('Dokumenty:default');
     }
     unset($values->delete);
     if (isset($values->role)) {
         $noveRole = $values->role;
         unset($values->role);
     }
     if (empty($values->id)) {
         $id = $this->uzivatel->insert($values);
         $this->log->l('uzivatel.create', $id);
     } else {
         $id = $values->id;
         $this->uzivatel->find($id)->update($values);
         $this->log->l('uzivatel.edit', $id);
     }
     if (isset($noveRole)) {
         $aktualniRole = array_values($this->uzivatel->find($id)->related('role', 'uzivatel_id')->fetchPairs('id', 'role'));
         sort($aktualniRole);
         sort($noveRole);
         $smazane = array_diff($aktualniRole, $noveRole);
         $pridane = array_diff($noveRole, $aktualniRole);
         $this->role->deleteRoles($smazane, $id);
         $this->role->createRoles($pridane, $id);
     }
     $this->flashMessage('Osoba byla úspěšně uložena.', 'success');
 }