This commit moves list of user roles into separate class (with own namespace), so we can access this data anywhere from application.
60 lines
1.7 KiB
PHP
60 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Enumerations\UserRoles;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests;
|
|
use App\Http\Requests\CreateNewUserRequest;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class CreateNewUser extends Controller
|
|
{
|
|
/**
|
|
* Show the form for creating new user
|
|
*
|
|
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
|
*/
|
|
public function getNewUser()
|
|
{
|
|
// define list of roles, this list will be used in template for selecting proper role for user
|
|
$roles = UserRoles::getWithTranslations();
|
|
|
|
// render view
|
|
return $this->view('admin.userManagement.new', ['roles' => $roles]);
|
|
}
|
|
|
|
/**
|
|
* Create new user
|
|
*
|
|
* This method saves new user into database
|
|
*
|
|
* @param CreateNewUserRequest $request
|
|
*
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
*/
|
|
protected function postRegistration(CreateNewUserRequest $request)
|
|
{
|
|
// when user did not provide any username, use his email
|
|
$username = isset($request->username) && !empty($request->username) ? $request->username : $request->email;
|
|
|
|
// create new user
|
|
$user = new User();
|
|
$user->name = $request->name;
|
|
$user->email = $request->email;
|
|
$user->username = $username;
|
|
$user->role = $request->role;
|
|
$user->password = Hash::make($request->password);
|
|
|
|
// store user into database
|
|
$user->save();
|
|
|
|
// refresh page with information about successfull registration
|
|
return redirect()
|
|
->route('users.new')
|
|
->with('success', trans('admin/userManagement.registrationSuccessfull'));
|
|
}
|
|
}
|