REFACTORING: split UserManagement controller into more classes

One class for user management would be really messy. This commit splits it into more classes.
This commit is contained in:
Michal Kváček
2016-01-24 17:30:02 +01:00
parent 9a4596581c
commit bb0083cdda
13 changed files with 94 additions and 25 deletions
@@ -9,8 +9,13 @@ use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
class UserManagement extends Controller class CreateNewUser extends Controller
{ {
/**
* Show the form for creating new user
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getNewUser() public function getNewUser()
{ {
// define list of roles, this list will be used in template for selecting proper role for user // define list of roles, this list will be used in template for selecting proper role for user
@@ -24,20 +29,6 @@ class UserManagement extends Controller
return $this->view('admin.userManagement.new', ['roles' => $roles]); 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 * Create new user
* *
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\Admin;
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 EditUser extends Controller {
}
+10
View File
@@ -0,0 +1,10 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests;
class UserDetail extends Controller
{
}
@@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\Admin;
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 UserProfile extends Controller {
}
@@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Admin;
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 UsersOverview extends Controller {
public function getOverview() {
return view('admin.userManagement.overview');
}
}
+5 -5
View File
@@ -33,19 +33,19 @@ Route::group([
->name('admin.dashboard'); ->name('admin.dashboard');
// display form for creating new user // display form for creating new user
Route::get('users/new', 'UserManagement@getNewUser') Route::get('users/new', 'CreateNewUser@getNewUser')
->name('users.new'); ->name('users.new');
// display form for edit of existing user // display form for edit of existing user
Route::get('users/edit/{id}', 'UserManagement@getEditExistingUser') Route::get('users/edit/{id}', 'EditUser@getEditExistingUser')
->name('users.edit'); ->name('users.edit');
// display user detail in admin // display user detail in admin
Route::get('users/{id}', 'UserManagement@getDetail') Route::get('users/detail/{id}', 'UserDetail@getDetail')
->name('users.detail'); ->name('users.detail');
// display list of all users registered into our system // display list of all users registered into our system
Route::get('users/overview/{state?}', 'UserManagement@getOverview') Route::get('users/overview/{state?}', 'UsersOverview@getOverview')
->name('users.overview'); ->name('users.overview');
// logout method // logout method
@@ -62,6 +62,6 @@ Route::group([
// POST methods // POST methods
// display form for creating new user // display form for creating new user
Route::post('users/new', 'UserManagement@postRegistration') Route::post('users/new', 'CreateNewUser@postRegistration')
->name('users.newPost'); ->name('users.newPost');
}); });
+3 -3
View File
@@ -25,10 +25,10 @@ class AdminMenusProvider extends ServiceProvider
* WARNING: MenuBuilder::route() does not seem to work, * WARNING: MenuBuilder::route() does not seem to work,
* nor route() helper function. We need to use action() helper instaed. * nor route() helper function. We need to use action() helper instaed.
*/ */
$menu->url(action('Admin\Dashboard@getIndex'), trans('admin/mainMenu.dashboard'), 1, ['icon' => 'fa fa-dashboard']); $menu->route('admin.dashboard', trans('admin/mainMenu.dashboard'), [], 1, ['icon' => 'fa fa-dashboard']);
$menu->dropdown(trans('admin/mainMenu.userManagement'), function($sub) { $menu->dropdown(trans('admin/mainMenu.userManagement'), function($sub) {
$sub->url(action('Admin\UserManagement@getNewUser'), trans('admin/mainMenu.newUser'), 1, ['icon' => 'fa fa-user-plus']); $sub->route('users.new', trans('admin/mainMenu.newUser'), [], 1, ['icon' => 'fa fa-user-plus']);
$sub->url(action('Admin\UserManagement@getOverview'), trans('admin/mainMenu.usersOverview'), 2, ['icon' => 'fa fa-users']); $sub->route('users.overview', trans('admin/mainMenu.usersOverview'), [], 2, ['icon' => 'fa fa-users']);
}, ['icon' => 'fa fa-users']); }, ['icon' => 'fa fa-users']);
$menu->url('#', trans('admin/mainMenu.customFields'), 30, ['icon' => 'fa fa-code']); $menu->url('#', trans('admin/mainMenu.customFields'), 30, ['icon' => 'fa fa-code']);
+3 -1
View File
@@ -11,6 +11,8 @@ return [
'role_visitor' => 'Visitor', 'role_visitor' => 'Visitor',
'register' => 'Create user', 'register' => 'Create user',
'registrationSuccessfull' => 'New user successfully added.', 'registrationSuccessfull' => 'New user successfully added.',
'profile' => 'Your profile' 'profile' => 'Your profile',
'overview' => 'List of all users',
'detail' => 'User\'s detail'
]; ];
@@ -0,0 +1,7 @@
@extends('admin.layout')
@section('pageName', @trans('admin/userManagement.detail'))
@section('content')
@stop
@@ -1 +1,7 @@
edituji uzivatele {{$id}}. @extends('admin.layout')
@section('pageName', @trans('admin/userManagement.editUser'))
@section('content')
@stop
@@ -4,6 +4,8 @@
@section('content') @section('content')
<h1>@lang('admin/userManagement.addNewUser')</h1>
@if (session('success')) @if (session('success'))
<div class="callout success"> <div class="callout success">
{{ session('success') }} {{ session('success') }}
@@ -0,0 +1,7 @@
@extends('admin.layout')
@section('pageName', @trans('admin/userManagement.overview'))
@section('content')
@stop