File: //home/aliazzsr/api.crm.vqode.com/models/core/RolePermission.php
<?php
namespace app\models\core;
use app\components\BaseModel;
use app\models\enums\PermissionEnum;
use yii\behaviors\AttributeTypecastBehavior;
/**
* Class RolePermission
* @package app\models\core
* @property string $permission_name
* @property boolean $create
* @property boolean $read
* @property boolean $update
* @property boolean $delete
*/
class RolePermission extends BaseModel
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'role_permission';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['role_id', 'permission_name'], 'required'],
[['create', 'read', 'update', 'delete'], 'default', 'value' => false],
[['role_id'], 'exist', 'targetClass' => 'app\models\core\Role', 'targetAttribute' => 'id'],
[['permission_name'], 'in', 'range' => PermissionEnum::getConstantsByName(), 'message' => 'Unknown permission type'],
[['role_id', 'permission_name', 'create', 'read', 'update', 'delete',], 'safe'],
];
}
/**
* @inheritdoc
*/
public function behaviors()
{
$behaviors = [
'typecast' => [
'class' => AttributeTypecastBehavior::className(),
'attributeTypes' => [
'create' => AttributeTypecastBehavior::TYPE_BOOLEAN,
'read' => AttributeTypecastBehavior::TYPE_BOOLEAN,
'update' => AttributeTypecastBehavior::TYPE_BOOLEAN,
'delete' => AttributeTypecastBehavior::TYPE_BOOLEAN,
],
'typecastAfterValidate' => true,
'typecastBeforeSave' => true,
'typecastAfterFind' => true,
],
];
return array_merge(parent::behaviors(), $behaviors);
}
}