Initial import
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
namespace app\models;
|
||||
|
||||
/**
|
||||
* Class UserAdminCms
|
||||
* @package app\models
|
||||
* @property string $email_login
|
||||
* @property $phone;
|
||||
* @property string $first_name
|
||||
* @property string $last_name
|
||||
* @property UserAdminCmsR[] $userRights
|
||||
* @property CmsRoles $cmsRole
|
||||
*/
|
||||
class UserAdminCms extends _Base
|
||||
{
|
||||
|
||||
public function getUserRights()
|
||||
{
|
||||
return $this->hasMany(UserAdminCmsR::class, ['user_id' => 'id']);
|
||||
}
|
||||
|
||||
public function getCmsRole() {
|
||||
return $this->hasOne(CmsRoles::class, ['id' => 'role_id']);
|
||||
}
|
||||
|
||||
|
||||
public function getRightsIds()
|
||||
{
|
||||
$rightsIds = [];
|
||||
foreach ($this->userRights as $userRight) {
|
||||
$rightsIds[] = $userRight->right_id;
|
||||
}
|
||||
return $rightsIds;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param UserAdminCms $model
|
||||
* @return string
|
||||
*/
|
||||
public static function getRightList(UserAdminCms $model)
|
||||
{
|
||||
list($checkedList, $checkList) = ["", ""];
|
||||
foreach (CmsRights::find()->all() as $item) {
|
||||
if (in_array($item->id, $model->getRightsIds()))
|
||||
$checkedList .= '<label data-name="' . $item->name . '"><input checked name="rights[]" type="checkbox" value="' . $item->id . '">' . $item->name . '</label>';
|
||||
}
|
||||
foreach (CmsRights::find()->all() as $item) {
|
||||
if (!in_array($item->id, $model->getRightsIds()))
|
||||
$checkList .= '<label data-name="' . $item->name . '"><input name="rights[]" type="checkbox" value="' . $item->id . '">' . $item->name . '</label>';
|
||||
}
|
||||
return '<div style="width: 100%; background: #f8f8f8; margin: 3px 0; padding: 3px 0; border: 1px solid var(--base-background-ultra-bright )">' . $checkedList . '</div>' . $checkList;
|
||||
}
|
||||
|
||||
public function updateRights($rightsIds)
|
||||
{
|
||||
list($create_list, $delete_list) = [[], []];
|
||||
|
||||
//Delete OLD
|
||||
foreach ($this->getRightsIds() as $rightId) {
|
||||
if (!in_array($rightId, $rightsIds))
|
||||
$delete_list[] = $rightId;
|
||||
}
|
||||
$deleteUserCmsR = UserAdminCmsR::find()->where(['user_id' => $this->id])->andWhere(['IN', 'right_id', $delete_list])->all();
|
||||
foreach ($deleteUserCmsR as $cmsUserRModel)
|
||||
$cmsUserRModel->delete();
|
||||
|
||||
//Create new
|
||||
foreach ($rightsIds as $currentId) {
|
||||
if (!in_array($currentId, $this->getRightsIds()))
|
||||
$create_list[] = $currentId;
|
||||
}
|
||||
|
||||
foreach ($create_list as $rightId){
|
||||
$cmsUserRModel = new UserAdminCmsR();
|
||||
$cmsUserRModel->user_id = $this->id;
|
||||
$cmsUserRModel->right_id = $rightId;
|
||||
$cmsUserRModel->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user