<?php namespace Modules\User\Http\Controllers\Admin; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\View; use Laracasts\Flash\Flash; use Modules\Core\Permissions\PermissionManager; use Modules\User\Http\Requests\RolesRequest; use Modules\User\Repositories\RoleRepository; class RolesController extends BaseUserModuleController { /** * @var RoleRepository */ private $role; public function __construct(PermissionManager $permissions, RoleRepository $role) { parent::__construct(); $this->permissions = $permissions; $this->role = $role; } /** * Display a listing of the resource. * * @return Response */ public function index() { $roles = $this->role->all(); return View::make('user::admin.roles.index', compact('roles')); } /** * Show the form for creating a new resource. * * @return Response */ public function create() { return View::make('user::admin.roles.create'); } /** * Store a newly created resource in storage. * * @param RolesRequest $request * @return Response */ public function store(RolesRequest $request) { $data = $this->mergeRequestWithPermissions($request); $this->role->create($data); Flash::success(trans('user::messages.role created')); return Redirect::route('dashboard.role.index'); } /** * Show the form for editing the specified resource. * * @param int $id * @return Response */ public function edit($id) { if (!$role = $this->role->find($id)) { Flash::error(trans('user::messages.role not found')); return Redirect::to('user::admin.roles.index'); } return View::make('user::admin.roles.edit', compact('role')); } /** * Update the specified resource in storage. * * @param int $id * @param RolesRequest $request * @return Response */ public function update($id, RolesRequest $request) { $data = $this->mergeRequestWithPermissions($request); $this->role->update($id, $data); Flash::success(trans('user::messages.role updated')); return Redirect::route('dashboard.role.index'); } /** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $this->role->delete($id); Flash::success(trans('user::messages.role deleted')); return Redirect::route('dashboard.role.index'); } }