This commit is contained in:
2024-07-24 14:07:45 +03:00
parent 094e047a5c
commit 043a699c6d
9 changed files with 214 additions and 20 deletions

View File

@ -4,8 +4,10 @@ namespace app\controllers;
use app\foo;
use app\helpers\Debug;
use app\models\forms\CreateUserForm;
use app\models\Question;
use app\models\User;
use app\services\UserService;
use app\tables\columns\UserViewActionColumn;
use Exception;
use http\Message;
@ -24,23 +26,14 @@ class UserController extends Controller{
public function actionAdd(): void
{
$_REQUEST["password_hash"] = password_hash($_REQUEST["password_hash"], PASSWORD_DEFAULT);
foreach ($_REQUEST as $key => $value)
{
// Debug::prn(User::where([$key => $value])->get()->toArray());
// Debug::prn($user);
// Debug::dd($user->toArray());
if (User::where([$key => $value])->get()->toArray() !== null)
{
header("Location: http://itguild-framework.loc/admin/user/create");
}
else
{
User::create($_REQUEST);
header("Location: http://itguild-framework.loc/admin/user/");
}
$userForm = new CreateUserForm();
$userService = new UserService();
$userForm->load($_REQUEST);
if ($userForm->validate()){
$userService->create($userForm);
$this->redirect("/admin/user");
}
$this->redirect("/admin/user/create");
}
public function actionQuestionCount($user_id)

View File

@ -2,6 +2,11 @@
namespace app\models;
use Illuminate\Database\Eloquent\Model;
/**
* @property string $username
* @property string $email
* @property string $password_hash
*/
class User extends Model {
protected $table = 'user';
protected $fillable = ['username', 'email', 'password_hash', 'role'];

View File

@ -0,0 +1,19 @@
<?php
namespace app\models\forms;
use kernel\FormModel;
class CreateUserForm extends FormModel
{
public function rules(): array
{
return [
'username' => 'required|min-str-len:5|max-str-len:30',
'password' => 'required|min-str-len:5|max-str-len:30',
'email' => 'required|email'
];
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace app\services;
use app\models\User;
use kernel\FormModel;
class UserService
{
public function create(FormModel $form_model): bool
{
$model = new User();
$model->username = $form_model->getItem('username');
$model->email = $form_model->getItem('email');
$model->password_hash = password_hash($form_model->getItem('password'), PASSWORD_DEFAULT);
return $model->save();
}
}