HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/ipsremont-demo/app/Models/Permission.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\SoftDeletes;

/**
 * @property int $id
 * @property string $name
 * @property string $slug
 * @property string $description
 * @property string $deleted_at
 * @property string $created_at
 * @property string $updated_at
 * @property string $type
 */
class Permission extends Model
{

    use SoftDeletes;

    const TYPE_ADMIN = 'admin';
    const TYPE_BOTH = 'both';
    const TYPE_HIDDEN = 'hidden';
    const TYPE_MANAGER = 'manager';
    const TYPE_SERVICE = 'service';

    const act_tc_create = 'act_tc_create';
    const act_tc_edit = 'act_tc_edit';
    const act_tc_view = 'act_tc_view';
    const actions = 'actions'; // Разрешает создавать и редактировать элементы
    const address = 'address';
    const branches = 'branch'; //работа с филиалами
    const branchesAll = 'branches-all'; //работа со ВСЕМИ подразделениями
    const categories = 'categories';
    const closed = 'closed'; //для отключенных модулей, этого права нет ни у кого
    const constructor = 'constructor'; //конструктор ролей
    const currencies = 'currencies'; // список валют
    const emails = 'emails';
    const external = '1c';
    const movement_through_warehouses = 'movement_through_warehouses';
    const notifications = 'notifications'; // работа с оповещениями
    const orders = 'orders'; //работа с заявками
    const parts = 'parts';
    const reconciliation = 'reconciliation';
    const regions = 'regions';
    const repairs = 'repairs'; // просмотр
    const repairsActions = 'repairs-actions';
    const services = 'services'; //работа с сервисными центрами
    const servicesAll = 'services-all'; //работа со ВСЕМИ сервисными центрами
    const servicesImport = 'services-import';
    const settings = 'settings';
    const shipments_edit = 'shipments_edit';
    const shipments_view = 'shipments_view';
    const users = 'users'; //работа с пользователями
    const warehouses = 'warehouses'; //работа со складами

    protected $table = 'permissions';

    protected $fillable = [
        'name',
        'slug',
        'description',
        'type',
        'role',
        'deleted_at',
    ];

    public function roles(): BelongsToMany
    {
        return $this->belongsToMany(Role::class, 'roles_permissions');
    }

    /**
     * Available types both|hidden|role types
     *
     * @return array
     */
    public static function getTypes(): array
    {
        return [
            self::TYPE_BOTH => self::TYPE_BOTH, //for all roles
            self::TYPE_HIDDEN => self::TYPE_HIDDEN, // hidden from constructor
        ];
    }

    /**
     * Available types both|role types
     *
     * @return array
     */
    public static function getEditableTypes(): array
    {
        return [self::TYPE_BOTH => self::TYPE_BOTH];//for all roles
    }

}