One Hat Cyber Team
Your IP :
3.144.98.87
Server IP :
192.145.235.60
Server :
Linux ngx365.inmotionhosting.com 5.14.0-427.33.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 30 09:45:56 EDT 2024 x86_64
Server Software :
Apache
PHP Version :
8.2.27
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
centos12
/
www
/
centosuit
/
app
/
Http
/
Controllers
/
View File Name :
ExpenseCategoryController.php
<?php namespace App\Http\Controllers; use App\Models\ExpensesCategoryRole; use App\Helper\Reply; use App\Http\Requests\Expenses\StoreExpenseCategory; use App\Models\BaseModel; use App\Models\ExpensesCategory; use App\Models\Role; use Illuminate\Support\Facades\DB; class ExpenseCategoryController extends AccountBaseController { public function __construct() { parent::__construct(); $this->pageTitle = 'app.menu.expenses'; $this->middleware(function ($request, $next) { abort_403(!in_array('expenses', $this->user->modules)); return $next($request); }); } public function create() { $this->categories = $this->getCategoryByCurrentRole(); $this->roles = Role::where('name', '<>', 'admin')->where('name', '<>', 'client')->get(); return view('expenses.category.create', $this->data); } public function store(StoreExpenseCategory $request) { $category = new ExpensesCategory(); $category->category_name = strip_tags($request->category_name); $category->save(); $roles = $request->role; if ($request->role && count($roles) > 0) // If selected role id. { ExpensesCategoryRole::where('expenses_category_id', $category->id)->delete(); foreach ($roles as $role) { $expansesCategoryRoles = new ExpensesCategoryRole(); $expansesCategoryRoles->expenses_category_id = $category->id; $expansesCategoryRoles->role_id = $role; $expansesCategoryRoles->save(); } } else { // If not selected role id select all roles default. $rolesData = Role::where('name', '<>', 'admin')->where('name', '<>', 'client')->get(); foreach ($rolesData as $roleData) { $expansesCategoryRoles = new ExpensesCategoryRole(); $expansesCategoryRoles->expenses_category_id = $category->id; $expansesCategoryRoles->role_id = $roleData->id; $expansesCategoryRoles->save(); } } $categories = ExpensesCategory::with(['roles', 'roles.role'])->get(); $options = BaseModel::options($categories, null, 'category_name'); return Reply::successWithData(__('messages.recordSaved'), ['data' => $options]); } public function update(StoreExpenseCategory $request, $id) { $group = ExpensesCategory::findOrFail($id); $category = $request->category_name; if ($request->has('role_update')) // If selected role id. { $roles = $request->roles; if ((is_array($roles) && count($roles) == 0) || is_null($roles)) { return Reply::error(__('messages.roleNotAssigned')); } ExpensesCategoryRole::where('expenses_category_id', $group->id)->delete(); foreach ($roles as $role) { $expansesCategoryRoles = new ExpensesCategoryRole(); $expansesCategoryRoles->expenses_category_id = $group->id; $expansesCategoryRoles->role_id = $role; $expansesCategoryRoles->save(); } } if ($category != '') { $group->category_name = $request->category_name; } $group->save(); $categories = ExpensesCategory::all(); $options = BaseModel::options($categories, null, 'category_name'); return Reply::successWithData(__('messages.updateSuccess'), ['data' => $options]); } public function destroy($id) { ExpensesCategory::destroy($id); $categories = ExpensesCategory::all(); $options = BaseModel::options($categories, null, 'category_name'); return Reply::successWithData(__('messages.deleteSuccess'), ['data' => $options]); } public static function getCategoryByCurrentRole() { $categories = ExpensesCategory::with(['roles', 'roles.role']); if (!in_array('admin', user_roles()) && !in_array('client', user_roles())) { $userRoleID = DB::select('select user_roles.role_id from role_user as user_roles where user_roles.user_id = ' . user()->id . ' ORDER BY user_roles.role_id DESC limit 1'); $categories = $categories->join('expenses_category_roles', 'expenses_category_roles.expenses_category_id', 'expenses_category.id') ->join('roles', 'expenses_category_roles.role_id', 'roles.id') ->select('expenses_category.*') ->where('expenses_category_roles.role_id', $userRoleID[0]->role_id); } return $categories->get(); } }