mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 14:26:54 +08:00
Reverted #11702: Added yii\rbac\DbManager::$assignmentTablePk
to be able to customize RBAC DB schema more (reverted from commit 532242041c3fe32d9208fd68a1167706b11b45df)
This commit is contained in:
@ -25,7 +25,6 @@ Yii Framework 2 Change Log
|
|||||||
- Bug #11571: Fixed `yii\db\ColumnSchemaBuilder` to work with custom column types (andrey-mokhov, silverfire)
|
- Bug #11571: Fixed `yii\db\ColumnSchemaBuilder` to work with custom column types (andrey-mokhov, silverfire)
|
||||||
- Bug #11662: Fixed `schema-oci.sql` for RBAC (jonny7)
|
- Bug #11662: Fixed `schema-oci.sql` for RBAC (jonny7)
|
||||||
- Bug #11527: Fixed `bigPrimaryKey()` for SQLite (dynasource)
|
- Bug #11527: Fixed `bigPrimaryKey()` for SQLite (dynasource)
|
||||||
- Enh #11702: Added `yii\rbac\DbManager::$assignmentTablePk` to be able to customize RBAC DB schema more (jrobles-boom)
|
|
||||||
|
|
||||||
|
|
||||||
2.0.8 April 28, 2016
|
2.0.8 April 28, 2016
|
||||||
|
@ -59,11 +59,6 @@ class DbManager extends BaseManager
|
|||||||
* @var string the name of the table storing rules. Defaults to "auth_rule".
|
* @var string the name of the table storing rules. Defaults to "auth_rule".
|
||||||
*/
|
*/
|
||||||
public $ruleTable = '{{%auth_rule}}';
|
public $ruleTable = '{{%auth_rule}}';
|
||||||
/**
|
|
||||||
* @var string the name of the primary key for assignment table. Defaults to "user_id".
|
|
||||||
* @since 2.0.9
|
|
||||||
*/
|
|
||||||
public $assignmentTablePk = 'user_id';
|
|
||||||
/**
|
/**
|
||||||
* @var Cache|array|string the cache used to improve RBAC performance. This can be one of the following:
|
* @var Cache|array|string the cache used to improve RBAC performance. This can be one of the following:
|
||||||
*
|
*
|
||||||
@ -465,7 +460,7 @@ class DbManager extends BaseManager
|
|||||||
$query = (new Query)->select('b.*')
|
$query = (new Query)->select('b.*')
|
||||||
->from(['a' => $this->assignmentTable, 'b' => $this->itemTable])
|
->from(['a' => $this->assignmentTable, 'b' => $this->itemTable])
|
||||||
->where('{{a}}.[[item_name]]={{b}}.[[name]]')
|
->where('{{a}}.[[item_name]]={{b}}.[[name]]')
|
||||||
->andWhere(['a.'.$this->assignmentTablePk => (string) $userId])
|
->andWhere(['a.user_id' => (string) $userId])
|
||||||
->andWhere(['b.type' => Item::TYPE_ROLE]);
|
->andWhere(['b.type' => Item::TYPE_ROLE]);
|
||||||
|
|
||||||
$roles = [];
|
$roles = [];
|
||||||
@ -523,7 +518,7 @@ class DbManager extends BaseManager
|
|||||||
$query = (new Query)->select('b.*')
|
$query = (new Query)->select('b.*')
|
||||||
->from(['a' => $this->assignmentTable, 'b' => $this->itemTable])
|
->from(['a' => $this->assignmentTable, 'b' => $this->itemTable])
|
||||||
->where('{{a}}.[[item_name]]={{b}}.[[name]]')
|
->where('{{a}}.[[item_name]]={{b}}.[[name]]')
|
||||||
->andWhere(['a.'.$this->assignmentTablePk => (string) $userId])
|
->andWhere(['a.user_id' => (string) $userId])
|
||||||
->andWhere(['b.type' => Item::TYPE_PERMISSION]);
|
->andWhere(['b.type' => Item::TYPE_PERMISSION]);
|
||||||
|
|
||||||
$permissions = [];
|
$permissions = [];
|
||||||
@ -543,7 +538,7 @@ class DbManager extends BaseManager
|
|||||||
{
|
{
|
||||||
$query = (new Query)->select('item_name')
|
$query = (new Query)->select('item_name')
|
||||||
->from($this->assignmentTable)
|
->from($this->assignmentTable)
|
||||||
->where([$this->assignmentTablePk => (string) $userId]);
|
->where(['user_id' => (string) $userId]);
|
||||||
|
|
||||||
$childrenList = $this->getChildrenList();
|
$childrenList = $this->getChildrenList();
|
||||||
$result = [];
|
$result = [];
|
||||||
@ -642,7 +637,7 @@ class DbManager extends BaseManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
$row = (new Query)->from($this->assignmentTable)
|
$row = (new Query)->from($this->assignmentTable)
|
||||||
->where([$this->assignmentTablePk => (string) $userId, 'item_name' => $roleName])
|
->where(['user_id' => (string) $userId, 'item_name' => $roleName])
|
||||||
->one($this->db);
|
->one($this->db);
|
||||||
|
|
||||||
if ($row === false) {
|
if ($row === false) {
|
||||||
@ -650,7 +645,7 @@ class DbManager extends BaseManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
return new Assignment([
|
return new Assignment([
|
||||||
'userId' => $row[$this->assignmentTablePk],
|
'userId' => $row['user_id'],
|
||||||
'roleName' => $row['item_name'],
|
'roleName' => $row['item_name'],
|
||||||
'createdAt' => $row['created_at'],
|
'createdAt' => $row['created_at'],
|
||||||
]);
|
]);
|
||||||
@ -667,12 +662,12 @@ class DbManager extends BaseManager
|
|||||||
|
|
||||||
$query = (new Query)
|
$query = (new Query)
|
||||||
->from($this->assignmentTable)
|
->from($this->assignmentTable)
|
||||||
->where([$this->assignmentTablePk => (string) $userId]);
|
->where(['user_id' => (string) $userId]);
|
||||||
|
|
||||||
$assignments = [];
|
$assignments = [];
|
||||||
foreach ($query->all($this->db) as $row) {
|
foreach ($query->all($this->db) as $row) {
|
||||||
$assignments[$row['item_name']] = new Assignment([
|
$assignments[$row['item_name']] = new Assignment([
|
||||||
'userId' => $row[$this->assignmentTablePk],
|
'userId' => $row['user_id'],
|
||||||
'roleName' => $row['item_name'],
|
'roleName' => $row['item_name'],
|
||||||
'createdAt' => $row['created_at'],
|
'createdAt' => $row['created_at'],
|
||||||
]);
|
]);
|
||||||
@ -805,7 +800,7 @@ class DbManager extends BaseManager
|
|||||||
|
|
||||||
$this->db->createCommand()
|
$this->db->createCommand()
|
||||||
->insert($this->assignmentTable, [
|
->insert($this->assignmentTable, [
|
||||||
$this->assignmentTablePk => $assignment->userId,
|
'user_id' => $assignment->userId,
|
||||||
'item_name' => $assignment->roleName,
|
'item_name' => $assignment->roleName,
|
||||||
'created_at' => $assignment->createdAt,
|
'created_at' => $assignment->createdAt,
|
||||||
])->execute();
|
])->execute();
|
||||||
@ -823,7 +818,7 @@ class DbManager extends BaseManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $this->db->createCommand()
|
return $this->db->createCommand()
|
||||||
->delete($this->assignmentTable, [$this->assignmentTablePk => (string) $userId, 'item_name' => $role->name])
|
->delete($this->assignmentTable, ['user_id' => (string) $userId, 'item_name' => $role->name])
|
||||||
->execute() > 0;
|
->execute() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -837,7 +832,7 @@ class DbManager extends BaseManager
|
|||||||
}
|
}
|
||||||
|
|
||||||
return $this->db->createCommand()
|
return $this->db->createCommand()
|
||||||
->delete($this->assignmentTable, [$this->assignmentTablePk => (string) $userId])
|
->delete($this->assignmentTable, ['user_id' => (string) $userId])
|
||||||
->execute() > 0;
|
->execute() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -981,7 +976,7 @@ class DbManager extends BaseManager
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return (new Query)->select('[['.$this->assignmentTablePk.']]')
|
return (new Query)->select('[[user_id]]')
|
||||||
->from($this->assignmentTable)
|
->from($this->assignmentTable)
|
||||||
->where(['item_name' => $roleName])->column($this->db);
|
->where(['item_name' => $roleName])->column($this->db);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user