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
}
}