FEATURE #1359: registration works now

Some basic form of registration is done. It does not look very nice, however I was able to create new user. This part will need a lots of other improvements, however new user was created. Yay!
This commit is contained in:
Michal Kváček
2016-01-21 01:08:03 +01:00
parent 559289dd39
commit 2f7df75b83
9 changed files with 257 additions and 53 deletions
+64 -4
View File
@@ -2,12 +2,72 @@
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Models\User;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class UserManagement extends Controller
{
//
public function getNewUser()
{
// define list of roles, this list will be used in template for selecting proper role for user
$roles = [
User::ROLE_ADMIN => 'admin/userManagement.role_' . User::ROLE_ADMIN,
User::ROLE_EDITOR => 'admin/userManagement.role_' . User::ROLE_EDITOR,
User::ROLE_VISITOR => 'admin/userManagement.role_' . User::ROLE_VISITOR
];
// render view
return $this->view('admin.userManagement.new', ['roles' => $roles]);
}
public function getEditExistingUser($id)
{
// try to find user
$user = User::findOrFail($id);
// render view
return $this->view('admin.userManagement.edit', ['user' => $user]);
}
public function getOverview($state = null)
{
echo $state;
}
/**
* Create new user
*
* This method saves new user into database
*
* @param Request $request
*/
protected function postRegistration(Request $request)
{
// validate input data
$this->validate($request, [
'role' => 'required',
'email' => 'required|email|max:128|unique:users',
'password' => 'required|min:6'
]);
// 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->email = $request->email;
$user->username = $username;
$user->role = $request->role;
$user->password = Hash::make($request->role);
// store user into database
$user->save();
// @todo add some redirect, inform user etc.
}
}
+17
View File
@@ -10,4 +10,21 @@ use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
/**
* Custom wrapper for generating view.
*
* This method will be used for switching among templates.
*
* @todo add template support
*
* @param null $view
* @param array $data
* @param array $mergeData
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
protected function view($view = null, $data = [], $mergeData = []) {
return view($view, $data, $mergeData);
}
}
+32
View File
@@ -23,11 +23,43 @@
*/
Route::group(['middleware' => ['web']], function () {
// display login form
Route::get('login', function () {
return view('admin.loginForm.form');
});
// ---------------------------------------------------------------
// @todo move to admin group (protect it)
// display form for creating new user
Route::get('admin/users/new', 'Admin\UserManagement@getNewUser')
->name('users.new');
// display form for edit of existing user
Route::get('admin/users/edit/{id}', 'Admin\UserManagement@getEditExistingUser')
->name('users.edit');
// display user detail in admin
Route::get('admin/users/{id}', 'Admin\UserManagement@getDetail')
->name('users.detail');
// display list of all users registered into our system
Route::get('admin/users/overview/{state?}', 'Admin\UsersManagement@getOverview')
->name('users.overview');
// POST methods
// ------------------------------------------
// create new user
Route::post('admin/users/new', 'Admin\UserManagement@postRegistration')
->name('admin.users.registration');
// edit existing user
Route::post('admin/users/new', 'Admin\UserManagement@postRegistration')
->name('admin.users.edit');
// handle login
Route::post('admin/login', 'Admin\Login@postLogin')
->name('login');
});