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 .= '';
}
foreach (CmsRights::find()->all() as $item) {
if (!in_array($item->id, $model->getRightsIds()))
$checkList .= '';
}
return '
' . $checkedList . '
' . $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();
}
}
}