Merge branch 'dev' into user_management

This commit is contained in:
Michal Kváček
2016-01-29 12:27:03 +01:00
156 changed files with 6753 additions and 176 deletions
@@ -4,8 +4,10 @@ namespace App\Http\Controllers\Admin;
use App\Enumerations\CustomFieldResources;
use App\Enumerations\CustomFieldTypes;
use App\Events\CreateNewCustomField as CreateNewCustomFieldEvent;
use App\Http\Requests\NewCustomFieldRequest;
use App\Models\CustomField;
use Illuminate\Support\Facades\Event;
class CreateNewCustomField extends Controller
{
@@ -59,6 +61,9 @@ class CreateNewCustomField extends Controller
$customField->save();
// fire event about creating new custom field
Event::fire(new CreateNewCustomFieldEvent($customField));
return redirect()
->route('customfields.new')
->with('success', trans('admin/customFields.successfullyCreated'));
+5 -1
View File
@@ -3,11 +3,12 @@
namespace App\Http\Controllers\Admin;
use App\Enumerations\UserRoles;
use App\Events\CreateNewUser as CreateNewUserEvent;
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\Event;
use Illuminate\Support\Facades\Hash;
class CreateNewUser extends Controller
@@ -51,6 +52,9 @@ class CreateNewUser extends Controller
// store user into database
$user->save();
// fire event
Event::fire(new CreateNewUserEvent($user));
// refresh page with information about successfull registration
return redirect()
->route('users.new')
@@ -4,10 +4,13 @@ namespace App\Http\Controllers\Admin;
use App\Enumerations\CustomFieldResources;
use App\Enumerations\CustomFieldTypes;
use App\Events\DeleteCustomField;
use App\Events\EditCustomField as EditCustomFieldEvent;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Http\Requests\EditCustomFieldRequest;
use App\Models\CustomField;
use Illuminate\Support\Facades\Event;
class EditCustomField extends Controller
{
@@ -60,6 +63,9 @@ class EditCustomField extends Controller
// save changes into database
$customField->save();
// fire event about editing custom field
Event::fire(new EditCustomFieldEvent($customField));
return redirect()
->route('customfields.edit', ['id' => $id])
->with('success', trans('admin/customFields.successfullyEdited'));
@@ -89,6 +95,9 @@ class EditCustomField extends Controller
// delete item
$field->delete();
// fire event about editing custom field
Event::fire(new DeleteCustomField($field));
// redirect back to overview
return redirect()
->route('customfields.overview')
+5
View File
@@ -4,11 +4,13 @@ namespace App\Http\Controllers\Admin;
use App\Enumerations\UserRoles;
use App\Enumerations\UserStates;
use App\Events\EditUser as EditUserEvent;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Http\Requests\EditUserRequest;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Hash;
class EditUser extends Controller
@@ -81,6 +83,9 @@ class EditUser extends Controller
$user->save();
// fire event about editing user
Event::fire(new EditUserEvent($user));
return redirect()
->route('users.detail', ['id' => $id])
->with('success', trans('admin/userManagement.userSuccessfullyEdited'));
+2
View File
@@ -29,6 +29,7 @@ class Kernel extends HttpKernel
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\App\Http\Middleware\ModuleRegistrator::class
],
'api' => [
@@ -45,6 +46,7 @@ class Kernel extends HttpKernel
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'onlyAdmin' => \App\Http\Middleware\RequireAdminRole::class,
// 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
+33
View File
@@ -0,0 +1,33 @@
<?php
namespace App\Http\Middleware;
use Closure;
class ModuleRegistrator
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
$modules = \Module::enabled();
// iterate over all enabled modules
foreach ($modules as $key => $module) {
$handler = config($module->getName() . '.handler');
// try to register menus
if (method_exists($handler, 'registerAdminMenu') && \Auth::check()) {
call_user_func([$handler, 'registerAdminMenu'], \Auth::user());
}
}
return $next($request);
}
}
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Middleware;
use App\Models\User;
use Closure;
class RequireAdminRole
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
if (\Auth::user()->role != User::ROLE_ADMIN) {
return redirect()
->back()
->with('error', trans('auth.accessDenied'));
}
return $next($request);
}
}
+43 -37
View File
@@ -28,22 +28,55 @@ Route::group([
'prefix' => 'admin'
], function () {
// these routes are available only for user with role admin
Route::group(['middleware' => 'onlyAdmin'], function () {
// display form for creating new user
Route::get('users/new', 'CreateNewUser@getNewUser')
->name('users.new');
// POST methods
// display form for creating new user
Route::post('users/new', 'CreateNewUser@postRegistration')
->name('users.newPost');
// display form for edit of existing user
Route::get('users/edit/{id}', 'EditUser@getEditExistingUser')
->name('users.edit');
// form for adding new custom field
Route::get('customfields/new', 'CreateNewCustomField@getNew')
->name('customfields.new');
// form for editing custom field
Route::get('customfields/edit/{id}', 'EditCustomField@getEditCustomField')
->name('customfields.edit');
// form for adding new custom field
Route::post('customfields/new', 'CreateNewCustomField@postNew')
->name('customfields.newPost');
// form for editing custom field
Route::post('customfields/edit/{id}', 'EditCustomField@postEditCustomField')
->name('customfields.editPost');
Route::get('customfields/delete/{id}', 'EditCustomField@deleteCustomField')
->name('customfields.delete');
});
// these routes are available for all logged (authenticated) users
// display dashboard with some usefull information
Route::get('/', 'Dashboard@getIndex')
->name('admin.dashboard');
// display form for creating new user
Route::get('users/new', 'CreateNewUser@getNewUser')
->name('users.new');
// display form for edit of existing user
Route::get('users/edit/{id}', 'EditUser@getEditExistingUser')
->name('users.edit');
// display user detail in admin
Route::get('users/detail/{id?}', 'UserDetail@getDetail')
->name('users.detail');
// method for saving edited data of user
Route::post('users/edit/{id}', 'EditUser@postEdit')
->name('users.editPost');
// display list of all users registered into our system
Route::get('users/overview/{state?}/{perPage?}', 'UsersOverview@getOverview')
->name('users.overview');
@@ -55,25 +88,6 @@ Route::group([
Route::get('customfields/overview', 'CustomFieldsOverview@getOverview')
->name('customfields.overview');
// form for adding new custom field
Route::get('customfields/new', 'CreateNewCustomField@getNew')
->name('customfields.new');
// form for editing custom field
Route::get('customfields/edit/{id}', 'EditCustomField@getEditCustomField')
->name('customfields.edit');
// form for adding new custom field
Route::post('customfields/new', 'CreateNewCustomField@postNew')
->name('customfields.newPost');
// form for editing custom field
Route::post('customfields/edit/{id}', 'EditCustomField@postEditCustomField')
->name('customfields.editPost');
Route::get('customfields/delete/{id}', 'EditCustomField@deleteCustomField')
->name('customfields.delete');
// logout method
Route::get('logout', function () {
@@ -84,14 +98,6 @@ Route::group([
return redirect()
->route('login')
->with('success', trans('admin/common.logoutSuccessfull'));
})->name('logout');
// POST methods
// display form for creating new user
Route::post('users/new', 'CreateNewUser@postRegistration')
->name('users.newPost');
// method for saving edited data of user
Route::post('users/edit/{id}', 'EditUser@postEdit')
->name('users.editPost');
})
->name('logout');
});