public function index() { $user = System::getUser(); $form = new Form('form-profile'); $form->setAttribute('data-noajax', 'true'); $form->binding = $user; $fieldset = new Fieldset(System::getLanguage()->_('General')); $firstname = new Text('firstname', System::getLanguage()->_('Firstname')); $firstname->binding = new Databinding('firstname'); $lastname = new Text('lastname', System::getLanguage()->_('Lastname')); $lastname->binding = new Databinding('lastname'); $email = new Text('email', System::getLanguage()->_('EMail'), true); $email->binding = new Databinding('email'); $email->blacklist = $this->getListOfMailAdresses($user); $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists'); $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages()); $language->binding = new Databinding('lang'); $fieldset->addElements($firstname, $lastname, $email, $language); $form->addElements($fieldset); $fieldset = new Fieldset(System::getLanguage()->_('Password')); $password = new Password('password', System::getLanguage()->_('Password')); $password->minlength = PASSWORD_MIN_LENGTH; $password->binding = new Databinding('password'); $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword')); $fieldset->addElements($password, $password2); $form->addElements($fieldset); $fieldset = new Fieldset(System::getLanguage()->_('Settings')); $quota = new Text('quota', System::getLanguage()->_('Quota')); if ($user->quota > 0) { $quota->value = System::getLanguage()->_('QuotaAvailabe', Utils::formatBytes($user->getFreeSpace()), Utils::formatBytes($user->quota)); } else { $quota->value = System::getLanguage()->_('Unlimited'); } $quota->readonly = true; $fieldset->addElements($quota); $form->addElements($fieldset); if (Utils::getPOST('submit', false) !== false) { if (!empty($password->value) && $password->value != $password2->value) { $password2->error = System::getLanguage()->_('ErrorInvalidPasswords'); } else { if ($form->validate()) { $form->save(); System::getUser()->save(); System::getSession()->setData('successMsg', System::getLanguage()->_('ProfileUpdated')); System::forwardToRoute(Router::getInstance()->build('ProfileController', 'index')); exit; } } } else { $form->fill(); } $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk')); $smarty = new Template(); $smarty->assign('title', System::getLanguage()->_('MyProfile')); $smarty->assign('heading', System::getLanguage()->_('MyProfile')); $smarty->assign('form', $form->__toString()); $smarty->display('form.tpl'); }
public function edit() { $user = User::find('_id', $this->getParam('uid', 0)); if ($user == NULL) { System::displayError(System::getLanguage()->_('ErrorUserNotFound'), '404 Not Found'); } $form = new Form('form-user', Router::getInstance()->build('UsersController', 'edit', $user)); $form->binding = $user; $fieldset = new Fieldset(System::getLanguage()->_('General')); $username = new Text('username', System::getLanguage()->_('Username'), true); $username->binding = new Databinding('username'); $username->blacklist = $this->getListOfUsernames($user); $username->error_msg[4] = System::getLanguage()->_('ErrorUsernameAlreayExists'); $firstname = new Text('firstname', System::getLanguage()->_('Firstname')); $firstname->binding = new Databinding('firstname'); $lastname = new Text('lastname', System::getLanguage()->_('Lastname')); $lastname->binding = new Databinding('lastname'); $email = new Text('email', System::getLanguage()->_('EMail'), true); $email->binding = new Databinding('email'); $email->blacklist = $this->getListOfMailAdresses($user); $email->error_msg[4] = System::getLanguage()->_('ErrorMailAdressAlreadyExists'); $language = new Radiobox('lang', System::getLanguage()->_('Language'), L10N::getLanguages(), LANGUAGE); $language->binding = new Databinding('lang'); $fieldset->addElements($username, $firstname, $lastname, $email, $language); $form->addElements($fieldset); $fieldset = new Fieldset(System::getLanguage()->_('Password')); $password = new Password('password', System::getLanguage()->_('Password')); $password->binding = new Databinding('password'); $password2 = new Password('password2', System::getLanguage()->_('ReenterPassword')); $fieldset->addElements($password, $password2); $form->addElements($fieldset); if ($user->uid != System::getUser()->uid) { $fieldset = new Fieldset(System::getLanguage()->_('Settings')); $quota = new Text('quota', System::getLanguage()->_('Quota') . ' (MB)', true, 'numeric'); $quota->binding = new Databinding('quota'); $p = new Paragraph(System::getLanguage()->_('QuotaInfo')); $admin = new Radiobox('admin', System::getLanguage()->_('Admin'), array('1' => System::getLanguage()->_('YesStr'), '0' => System::getLanguage()->_('NoStr'))); $admin->binding = new Databinding('isAdmin'); $fieldset->addElements($quota, $p, $admin); $form->addElements($fieldset); } $form->setSubmit(new Button(System::getLanguage()->_('Save'), 'floppy-disk')); if ($user->uid != System::getUser()->uid) { $form->addButton(new Button(System::getLanguage()->_('DeleteUser'), 'trash', Router::getInstance()->build('UsersController', 'delete', $user))); } $form->addButton(new Button(System::getLanguage()->_('Cancel'), 'remove', Router::getInstance()->build('UsersController', 'index'))); if (Utils::getPOST('submit', false) !== false) { if ($form->validate()) { if ($quota->value < 0) { $quota->error = 'Quota must be > 0'; } else { $form->save(); $user->quota *= 1048576; // Quota is MB $user->save(); System::forwardToRoute(Router::getInstance()->build('UsersController', 'index')); exit; } } } else { $user->quota /= 1048576; // Quota is MB $form->fill(); } $smarty = new Template(); $smarty->assign('title', System::getLanguage()->_('EditUser')); $smarty->assign('heading', System::getLanguage()->_('EditUser')); $smarty->assign('form', $form); $smarty->display('form.tpl'); }