Změna hesla uživatelů jako správce

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
.:M@rt!n:.
Člen | 201
+
0
-

Rád bych měl možnost jako přihlášený admin v administraci měnit hesla ostatních uživatelů (v případě že původní zapomenou), ale nějak se mě nedaří přijít na řešení.

Vytvoření formuláře:

protected function createComponentUzivatelForm() {
        $form = new Form();


        $ucet = array(
            'admin'=>'admin',
            'user'=>'user'

        );



        $form->addText('username', 'Jméno:');
        $form->addPassword('password', 'Heslo:')
                ->addRule(Form::MIN_LENGTH, 'Heslo musí mít alespoň %d znaků.', 5);
        $form->addPassword('confirmPassword', 'Potvrzení hesla:')
                ->addRule(Form::FILLED, 'Heslo je nutné zadat ještě jednou pro potvrzení.')
                ->addRule(Form::EQUAL, 'Zadná hesla se musejí shodovat.', $form['password']);
        $form->addSelect('ucet', 'Typ účtu: ', $ucet)
                ->setPrompt('-------------- Vyberte --------------')
                ->addRule(Form::FILLED, 'Je nutné vybrat typ účtu.');

        $presenter = $this;

        $form->addSubmit('create', 'Přidat')->setAttribute('class', 'default');
        $form->addSubmit('cancel', 'Zrušit')->setValidationScope(FALSE)
                ->onClick[] = function () use ($presenter) {
                    $presenter->redirect('default');
                };

        $form->onSuccess[] = callback($this, 'uzivatelFormSubmitted');
        $form->addProtection('Vypršel časový limit, odešlete formulář znovu.'); //Obrana před Cross-Site Request Forgery (CSRF)
        return $form;
    }

a obsluha:

public function uzivatelFormSubmitted(Form $form) {
        $id = (int) $this->getParameter('id');

        if ($id > 0) {
            $this->uzivatel->find($id)->insert(array(
                'username' => $form->values->username,
                'password' => md5($form->values->password),
                'ucet' => $form->values->ucet
            ));
            $this->flashMessage('Uživatel upraven.', 'success');
        } else {

            $this->context->createUzivatel()->insert(array(
                'username' => $form->values->username,
                'password' => md5($form->values->password),
                'ucet' => $form->values->ucet
            ));
            $this->flashMessage('Uživatel přidán.', 'success');
        }
        $this->redirect('this');
    }

Bohužel takto změna hesla neproběhne… Prosím tedy o radu, jak mohu do této obsluhy zakomponovat změnu hesla pro daného uživatele??
Zkoušel jsem to i podle quickstartu, kde si každý uživatel změní své heslo, ale neúspěšně…

llook
Člen | 407
+
0
-

Zkus update místo insert.

.:M@rt!n:.
Člen | 201
+
0
-

Jo díky, této chyby jsem si vůbec nevšiml, tam má být samozřejmě update a už to jde. Víc očí víc vidí ;)