Uname:Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64

Base Dir : /var/www/machinox.in

User : root


403WebShell
403Webshell
Server IP : 13.235.167.51  /  Your IP : 216.73.217.116
Web Server : Apache
System : Linux machinox-server 6.17.0-1013-aws #13~24.04.1-Ubuntu SMP Fri Apr 24 21:36:58 UTC 2026 aarch64
User : root ( 0)
PHP Version : 8.2.29
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/app.machinox.in/app/Http/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/app.machinox.in/app/Http/Controllers/Admin/RoleController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Helpers\UserAccessHelper;
use App\Http\Controllers\Controller;
use App\Models\AdminRole;
use App\Models\AdminUser;
use App\Models\Menu;
use App\Models\Role;
use App\Models\RoleAccess;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Validator;

class RoleController extends Controller
{
    protected $_userId;
    protected $access = null;

    public function __construct()
    {
        $this->_userId = ADMIN_USER_ID();
        $this->access = UserAccessHelper::getAccess($this->_userId, UserAccessHelper::$code_manage_roles);
    }

    public function GetLeftMenu(Request $request)
    {
        $user = AdminUser::GetInfoById($this->_userId);
        if (!$user) {
            return $this->sendError(trans("messages.USER_INFO_NOT_FOUND"));
        }

        $left_menus = UserAccessHelper::getLeftMenus();
        $access = UserAccessHelper::getAccessByCode($user->id, $left_menus);
        $access = UserAccessHelper::HashMap($access);

        $arr = [];
        if (!empty($access)) {

            if ($access['manage_dashboard']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_DASHBOARD'), $access['manage_dashboard'], "home-icon.png", "/dashboard");
            }

            if ($access['manage_app_user']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_APP_USERS'), $access['manage_app_user'], "users-icon.png", "/manage-app-user");
            }

            if ($access['manage_category']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_CATEGORY'), $access['manage_category'], "monthly_invvoice.svg", "/manage-category");
            }

            if ($access['manage_clients']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_CLIENTS'), $access['manage_clients'], "users-icon.png", "/manage-clients");
            }

            if ($access['manage_advertisement']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_ADVERTISEMENT'), $access['manage_advertisement'], "monthly_invvoice.svg", "/manage-advertisements");
            }

            if ($access['manage_jobs']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_JOBS'), $access['manage_jobs'], "users-icon.png", "/manage-jobs");
            }
            if (
                (($access['manage_subscription'] && $access['manage_subscription']->can_read == 1) ||
                    ($access['manage_user_subscription'] && $access['manage_user_subscription']->can_read == 1) ||
                    ($access['manage_boost'] && $access['manage_boost']->can_read == 1) ||
                    ($access['manage_job_seeker'] && $access['manage_job_seeker']->can_read == 1))
            ) {
                $sub_menus = [];
                $access['manage_subscription']->can_read = "1";
                $objReports = UserAccessHelper::GetMenuObject(trans('menus.MANAGE_SUBSCRIPTION'), $access['manage_subscription'], "subscription.svg", "#");
                if ($access['manage_user_subscription']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_USER_SUBSCRIPTION'), $access['manage_user_subscription'], "subscription.svg", "/manage-user-subscription");
                }
                if ($access['manage_boost']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_BOOST'), $access['manage_boost'], "subscription.svg", "/manage-boost");
                }
                if ($access['manage_job_seeker']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_JOB_SEEKER'), $access['manage_job_seeker'], "subscription", "/manage-job-seeker");
                }
                $objReports->sub_menus = $sub_menus;
                $arr[] = $objReports;
            }
            if ($access['manage_banner']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_BANNER'), $access['manage_banner'], "monthly_invvoice.svg", "/manage-banners");
            }

            if ($access['manage_machine_enquiry']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_MACHINE_ENQUIRY'), $access['manage_machine_enquiry'], "monthly_invvoice.svg", "/manage-machine-enquiry");
            }

            if ($access['manage_customer_queries']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_CUSTOMER_QUERIES'), $access['manage_customer_queries'], "monthly_invvoice.svg", "/manage-customer-queries");
            }

            if ($access['manage_transactions']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_TRANSACTIONS'), $access['manage_transactions'], "monthly_invvoice.svg", "/manage-transactions");
            }

            if ($access['manage_notification']->can_read == 1) {
                $arr[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_NOTIFICATION'), $access['manage_notification'], "activity_log.svg", "/manage-notifications");
            }

            if (
                (($access['manage_settings'] && $access['manage_settings']->can_read == 1) ||
                    ($access['manage_role'] && $access['manage_role']->can_read == 1) ||
                    ($access['manage_admin_user'] && $access['manage_admin_user']->can_read == 1) ||
                    ($access['manage_cms'] && $access['manage_cms']->can_read == 1) ||
                    ($access['manage_faqs'] && $access['manage_faqs']->can_read == 1))
            ) {
                $sub_menus = [];
                $access['manage_settings']->can_read = "1";
                $objReports = UserAccessHelper::GetMenuObject(trans('menus.MANAGE_SETTINGS'), $access['manage_settings'], "settings.svg", "#");
                if ($access['manage_role']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_ROLES'), $access['manage_role'], "monthly_invvoice.svg", "/manage-roles");
                }

                if ($access['manage_admin_user']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_ADMIN_USERS'), $access['manage_admin_user'], "users-icon.png", "/manage-admin-user");
                }
                if ($access['manage_cms']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_CMS'), $access['manage_cms'], "monthly_invvoice.svg", "/manage-cms");
                }

                if ($access['manage_faqs']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_FAQS'), $access['manage_faqs'], "monthly_invvoice.svg", "/manage-faq");
                }
                if ($access['manage_contact_support']->can_read == 1) {
                    $sub_menus[] = UserAccessHelper::getMenuObject(trans('menus.MANAGE_CONTACT_SUPPORT'), $access['manage_contact_support'], "settings.svg", "/manage-contact-support");
                }
                $objReports->sub_menus = $sub_menus;
                $arr[] = $objReports;
            }
        }

        return response()->json(['message' => trans('messages.OK'), 'status' => trans('messages.SUCCESS'), 'list' => $arr]);
    }

    public function GetRoles(Request $request)
    {
        $user = AdminUser::GetInfoById($this->_userId);
        if (!$user) {
            return $this->sendError(trans("messages.USER_INFO_NOT_FOUND"));
        }

        $roleIds = [];
        if ($user->role) {
            $roleIds[] = $user->role->id;
        }

        if ($this->access->can_read == 1) {
            $data = Role::GetRoleList($request);

            foreach ($data['list'] as $item) {
                if ($item->is_editable === "Y" && in_array($item->id, $roleIds)) {
                    $item->is_editable = "N";
                }
            }

            $data['access'] = $this->access;
            return $this->sendSuccess(trans('messages.SUCCESS'), $data);
        }

        return $this->sendError(trans('messages.SOMETHING_WENT_WRONG'), ["access" => $this->access, 'list' => []]);
    }

    public function getMenus(Request $request, $roleId = null)
    {
        $user = AdminUser::GetInfoById($this->_userId);
        if (!$user) {
            return $this->sendError(trans("messages.USER_INFO_NOT_FOUND"));
        }

        $roleInfo = null;
        if ($roleId > 0) {
            $roleInfo = Role::getRoleInfo($roleId);
            if (!$roleInfo) {
                return $this->sendError(trans("messages.ROLE_INFO_NOT_FOUND"));
            }
        }

        $list = Menu::getMenus($roleId);
        if (!empty($list)) {
            $response = ['list' => $list];
            if ($roleInfo) {
                $response = array_merge($response, [
                    'status' => $roleInfo->status,
                    'id' => $roleInfo->id,
                    'role_name' => $roleInfo->role_name,
                    'is_editable' => $roleInfo->is_editable
                ]);
            }
            return $this->sendSuccess(trans('messages.OK'), $response);
        }

        return $this->sendSuccess(trans('messages.RECORD_NOT_FOUND'), ['list' => []]);
    }

    public function setRoleAccess(Request $request, $role_id = 0)
    {
        $validator = Validator::make($request->all(), [
            'role_name' => 'required|string',
            'status' => 'required|in:ACTIVE,INACTIVE',
            'role_access' => 'required|array'
        ]);

        if ($validator->fails()) {
            return $this->sendError($validator->errors()->first());
        }

        $user = AdminUser::GetInfoById($this->_userId);
        if (!$user) {
            return $this->sendError(trans("messages.USER_INFO_NOT_FOUND"));
        }

        $role_name = $request->input('role_name');
        $status = $request->input('status');
        $role_access = $request->input('role_access');

        if (($this->access->can_read == 0 && $role_id == 0) || ($this->access->can_update == 0 && $role_id > 0)) {
            return $this->sendError(trans("messages.YOU_DONT_HAVE_PERMISSION_TO_ACCESS_THIS_FUNCTION"));
        }

        $objRole = Role::checkRoleExists($role_name, $role_id);
        if ($objRole) {
            return $this->sendError(trans('messages.ROLE_WITH_THIS_NAME_ALREDY_EXISTS'),['name' => $role_name]);
        }

        if ($role_id == 0) {
            $role_id = Role::addRole($role_name, $status);
        } else {
            Role::updateRole($role_name, $status, $role_id);
        }

        $arrAccess = [];
        foreach ($role_access as $ra) {
            $menuInfo = Menu::where('menu', $ra['menu'])->first();
            if ($menuInfo) {
                $arrAccess[] = [
                    'role_id'    => $role_id,
                    'menu_id'    => $menuInfo->id,
                    'can_create' => $ra['can_create'] ?? "0",
                    'can_read'   => $ra['can_read'] ?? "0",
                    'can_update' => $ra['can_update'] ?? "0",
                    'can_delete' => $ra['can_delete'] ?? "0",
                    'can_print'  => $ra['can_print'] ?? "0",
                ];
            }
        }

        RoleAccess::DeleteRoleAccess($role_id);
        RoleAccess::AssignRoleAccess($arrAccess);

        return $this->sendSuccess(trans('messages.ROLE_HAS_SAVED_SUCCESSFULLY'), ["id" => $role_id]);
    }

    public function deleteRole(Request $request, $role_id)
    {
        $user = AdminUser::getInfoById($this->_userId);
        if (!$user) {
            return $this->sendError(trans("messages.USER_INFO_NOT_FOUND"));
        }

        $role_ids = [];
        if ($user->user_roles) {
            foreach ($user->user_roles as $userRole) {
                $role_ids[] = $userRole->role->id;
            }
        }

        if (!empty($role_ids) && in_array($role_id, $role_ids)) {
            return $this->sendError("Sorry, You don't have permission to delete this role.");
        }

        $info = Role::getRoleInfo($role_id);
        if (!$info) {
            return $this->sendError(trans('messages.ROLE_NOT_FOUND'));
        }

        if ($info->is_editable === "N") {
            return $this->sendError(trans("messages.YOU_CANT_DELETE_THIS_RECORD"));
        }

        $checkAssignedRole = AdminRole::where("role_id", $role_id)->count();
        if ($checkAssignedRole == 0) {
            RoleAccess::DeleteRoleAccess($role_id);
            $info->delete();
            return $this->sendSuccess(trans('messages.ROLE_HAS_DELETED_SUCCESSFULLY'));
        }

        return $this->sendError(trans('messages.ROLE_HAS_IN_USED'));
    }

    public function GetRolesForDropdown(Request $request)
    {
        try {
            $roles = Role::where("role_type", "ADMIN")->get();
            return $this->sendSuccess(trans('messages.SUCCESS'), ['list' => $roles]);
        } catch (\Throwable $th) {
            return $this->sendError($th->getMessage());
        }
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit