50 lines
1.2 KiB
PHP
50 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace app\overrides\user\controllers;
|
|
|
|
use app\overrides\user\models\User;
|
|
use function Piko\I18n\__;
|
|
use app\modules\user\models\Role;
|
|
|
|
class AdminController extends \app\modules\user\controllers\AdminController
|
|
{
|
|
/**
|
|
* Render User form and create or update user
|
|
*
|
|
* @return string
|
|
*/
|
|
public function editAction(int $id = 0)
|
|
{
|
|
$user = new User($this->db);
|
|
|
|
if ($id) {
|
|
$user->load($id);
|
|
}
|
|
|
|
$user->scenario = User::SCENARIO_ADMIN;
|
|
$message = [];
|
|
|
|
$post = $this->request->getParsedBody();
|
|
|
|
if (!empty($post)) {
|
|
|
|
$user->bind($post);
|
|
|
|
if ($user->isValid() && $user->save()) {
|
|
$message['type'] = 'success';
|
|
$message['content'] = __('user', 'User successfully saved');
|
|
} else {
|
|
$message['type'] = 'danger';
|
|
$message['content'] = __('user', 'Save error!') . implode(' ', $user->errors);
|
|
}
|
|
}
|
|
|
|
|
|
return $this->render('edit', [
|
|
'user' => $user,
|
|
'message' => $message,
|
|
'roles' => Role::find('`name` ASC'),
|
|
]);
|
|
}
|
|
}
|