| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | 
							- <?php
 
- namespace App\Http\Controllers\Admin\Roles;
 
- use App\Http\Controllers\Controller;
 
- use App\Shop\Permissions\Repositories\Interfaces\PermissionRepositoryInterface;
 
- use App\Shop\Roles\Repositories\RoleRepository;
 
- use App\Shop\Roles\Repositories\RoleRepositoryInterface;
 
- use App\Shop\Roles\Requests\CreateRoleRequest;
 
- use App\Shop\Roles\Requests\UpdateRoleRequest;
 
- class RoleController extends Controller
 
- {
 
-     /**
 
-      * @var RoleRepositoryInterface
 
-      */
 
-     private $roleRepo;
 
-     /**
 
-      * @var PermissionRepositoryInterface
 
-      */
 
-     private $permissionRepository;
 
-     /**
 
-      * RoleController constructor.
 
-      *
 
-      * @param RoleRepositoryInterface $roleRepository
 
-      * @param PermissionRepositoryInterface $permissionRepository
 
-      */
 
-     public function __construct(
 
-         RoleRepositoryInterface $roleRepository,
 
-         PermissionRepositoryInterface $permissionRepository
 
-     ) {
 
-         $this->roleRepo = $roleRepository;
 
-         $this->permissionRepository = $permissionRepository;
 
-     }
 
-     /**
 
-      * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 
-      */
 
-     public function index()
 
-     {
 
-         $list = $this->roleRepo->listRoles('name', 'asc')->all();
 
-         $roles = $this->roleRepo->paginateArrayResults($list);
 
-         return view('admin.roles.list', compact('roles'));
 
-     }
 
-     /**
 
-      * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 
-      */
 
-     public function create()
 
-     {
 
-         return view('admin.roles.create');
 
-     }
 
-     /**
 
-      * @param CreateRoleRequest $request
 
-      *
 
-      * @return \Illuminate\Http\RedirectResponse
 
-      */
 
-     public function store(CreateRoleRequest $request)
 
-     {
 
-         $this->roleRepo->createRole($request->except('_method', '_token'));
 
-         return redirect()->route('admin.roles.index')
 
-             ->with('message', 'Create role successful!');
 
-     }
 
-     /**
 
-      * @param $id
 
-      *
 
-      * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 
-      */
 
-     public function edit($id)
 
-     {
 
-         $role = $this->roleRepo->findRoleById($id);
 
-         $roleRepo = new RoleRepository($role);
 
-         $attachedPermissionsArrayIds = $roleRepo->listPermissions()->pluck('id')->all();
 
-         $permissions = $this->permissionRepository->listPermissions(['*'], 'name', 'asc');
 
-         return view('admin.roles.edit', compact(
 
-             'role',
 
-             'permissions',
 
-             'attachedPermissionsArrayIds'
 
-         ));
 
-     }
 
-     /**
 
-      * @param UpdateRoleRequest $request
 
-      * @param $id
 
-      *
 
-      * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
 
-      */
 
-     public function update(UpdateRoleRequest $request, $id)
 
-     {
 
-         $role = $this->roleRepo->findRoleById($id);
 
-         if ($request->has('permissions')) {
 
-             $roleRepo = new RoleRepository($role);
 
-             $roleRepo->syncPermissions($request->input('permissions'));
 
-         }
 
-         $this->roleRepo->updateRole($request->except('_method', '_token'), $id);
 
-         return redirect()->route('admin.roles.edit', $id)
 
-             ->with('message', 'Update role successful!');
 
-     }
 
- }
 
 
  |