Skip to content

Commit a39826f

Browse files
Переделка привязки пользователей к сайтам + отключение списка сайтов
1 parent b3a01e3 commit a39826f

File tree

3 files changed

+53
-26
lines changed

3 files changed

+53
-26
lines changed

src/CmsManager.php

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
namespace skeeks\cms\rbac;
1010

11-
use skeeks\cms\models\CmsSite;
1211
use Yii;
1312
use yii\base\InvalidConfigException;
1413
use yii\caching\Cache;
@@ -24,8 +23,6 @@
2423
use yii\rbac\Rule;
2524

2625
/**
27-
* @var CmsSite $cmsSite ;
28-
*
2926
* @author Semenov Alexander <semenov@skeeks.com>
3027
*/
3128
class CmsManager extends \yii\rbac\DbManager
@@ -35,11 +32,6 @@ class CmsManager extends \yii\rbac\DbManager
3532
*/
3633
public $config = [];
3734

38-
/**
39-
* @var CmsSite
40-
*/
41-
public $cmsSite = null;
42-
4335
/**
4436
* @throws \yii\base\InvalidConfigException
4537
*/
@@ -57,10 +49,6 @@ public function init()
5749
} else {
5850
$this->cache = null;
5951
}
60-
61-
if ($this->cmsSite === null) {
62-
$this->cmsSite = \Yii::$app->skeeks->site;
63-
}
6452
}
6553

6654
/**
@@ -302,7 +290,6 @@ public function assign($role, $userId)
302290
'cms_user_id' => $assignment->userId,
303291
'item_name' => $assignment->roleName,
304292
'created_at' => $assignment->createdAt,
305-
'cms_site_id' => $this->cmsSite->id,
306293
])->execute();
307294

308295
unset($this->checkAccessAssignments[(string)$userId]);
@@ -327,7 +314,8 @@ protected function _parentRevoke($role, $userId)
327314

328315
unset($this->checkAccessAssignments[(string)$userId]);
329316
return $this->db->createCommand()
330-
->delete($this->assignmentTable, ['cms_user_id' => (string)$userId, 'cms_site_id' => $this->cmsSite->id, 'item_name' => $role->name])
317+
->delete($this->assignmentTable, ['cms_user_id' => (string)$userId,
318+
'item_name' => $role->name])
331319
->execute() > 0;
332320
}
333321
/**
@@ -783,7 +771,7 @@ private function _loadAssignments($userId)
783771
->select('item_name')
784772
->from($this->assignmentTable)
785773
->where(['cms_user_id' => $userId])
786-
->andWhere(['cms_site_id' => $this->cmsSite->id]);
774+
;
787775

788776
$this->_assignments[$userId] = $query->column($this->db);
789777
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
/**
3+
* @author Semenov Alexander <semenov@skeeks.com>
4+
* @link http://skeeks.com/
5+
* @copyright 2010 SkeekS (СкикС)
6+
* @date 28.08.2015
7+
*/
8+
9+
use yii\db\Migration;
10+
11+
class m220126_011000__alter_table__auth_assignment extends Migration
12+
{
13+
public function safeUp()
14+
{
15+
$tableName = "auth_assignment";
16+
17+
$this->dropForeignKey("auth_assignment__cms_site_id", $tableName);
18+
19+
$this->dropForeignKey(
20+
"{$tableName}__cms_user_id", $tableName
21+
);
22+
23+
$this->dropForeignKey(
24+
"{$tableName}__item_name", $tableName
25+
);
26+
27+
$this->dropIndex("uniq", $tableName);
28+
$this->dropIndex("auth_assignment__cms_site_id", $tableName);
29+
30+
$this->dropColumn($tableName, 'cms_site_id');
31+
32+
$this->createIndex("uniq", $tableName, ['item_name', 'cms_user_id'], true);
33+
34+
$this->addForeignKey(
35+
"{$tableName}__cms_user_id", $tableName,
36+
'cms_user_id', '{{%cms_user}}', 'id', 'CASCADE', 'CASCADE'
37+
);
38+
39+
$this->addForeignKey(
40+
"{$tableName}__item_name", $tableName,
41+
'item_name', '{{%auth_item}}', 'name', 'CASCADE', 'CASCADE'
42+
);
43+
}
44+
45+
public function safeDown()
46+
{
47+
echo "m200410_121000__alter_table__cms_tree cannot be reverted.\n";
48+
return false;
49+
}
50+
}

src/models/CmsAuthAssignment.php

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
*
2727
* @property CmsAuthItem $authItem
2828
* @property CmsUser $user
29-
* @property CmsSite $cmsSite
3029
*/
3130
class CmsAuthAssignment extends ActiveRecord
3231
{
@@ -77,15 +76,5 @@ public function getUser()
7776
{
7877
return $this->hasOne(CmsUser::className(), ['id' => 'cms_user_id']);
7978
}
80-
81-
/**
82-
* Gets query for [[CmsSite]].
83-
*
84-
* @return \yii\db\ActiveQuery
85-
*/
86-
public function getCmsSite()
87-
{
88-
return $this->hasOne(CmsSite::className(), ['id' => 'cms_site_id']);
89-
}
9079

9180
}

0 commit comments

Comments
 (0)