mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-17 14:57:23 +08:00
RBAC DbManager fixes
This commit is contained in:
@@ -160,7 +160,8 @@ class DbManager extends Manager
|
||||
throw new InvalidCallException("Cannot add '$childName' as a child of '$itemName'. A loop has been detected.");
|
||||
}
|
||||
$this->db->createCommand()
|
||||
->insert($this->itemChildTable, array('parent' => $itemName, 'child' => $childName));
|
||||
->insert($this->itemChildTable, array('parent' => $itemName, 'child' => $childName))
|
||||
->execute();
|
||||
return true;
|
||||
} else {
|
||||
throw new Exception("Either '$itemName' or '$childName' does not exist.");
|
||||
@@ -177,7 +178,8 @@ class DbManager extends Manager
|
||||
public function removeItemChild($itemName, $childName)
|
||||
{
|
||||
return $this->db->createCommand()
|
||||
->delete($this->itemChildTable, array('parent' => $itemName, 'child' => $childName)) > 0;
|
||||
->delete($this->itemChildTable, array('parent' => $itemName, 'child' => $childName))
|
||||
->execute() > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -248,7 +250,8 @@ class DbManager extends Manager
|
||||
'item_name' => $itemName,
|
||||
'biz_rule' => $bizRule,
|
||||
'data' => serialize($data),
|
||||
));
|
||||
))
|
||||
->execute();
|
||||
return new Assignment(array(
|
||||
'manager' => $this,
|
||||
'userId' => $userId,
|
||||
@@ -267,7 +270,8 @@ class DbManager extends Manager
|
||||
public function revoke($userId, $itemName)
|
||||
{
|
||||
return $this->db->createCommand()
|
||||
->delete($this->assignmentTable, array('user_id' => $userId, 'item_name' => $itemName)) > 0;
|
||||
->delete($this->assignmentTable, array('user_id' => $userId, 'item_name' => $itemName))
|
||||
->execute() > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -358,7 +362,8 @@ class DbManager extends Manager
|
||||
), array(
|
||||
'user_id' => $assignment->userId,
|
||||
'item_name' => $assignment->itemName,
|
||||
));
|
||||
))
|
||||
->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -424,6 +429,7 @@ class DbManager extends Manager
|
||||
*/
|
||||
public function createItem($name, $type, $description = '', $bizRule = null, $data = null)
|
||||
{
|
||||
echo $name;
|
||||
$this->db->createCommand()
|
||||
->insert($this->itemTable, array(
|
||||
'name' => $name,
|
||||
@@ -431,7 +437,8 @@ class DbManager extends Manager
|
||||
'description' => $description,
|
||||
'biz_rule' => $bizRule,
|
||||
'data' => serialize($data),
|
||||
));
|
||||
))
|
||||
->execute();
|
||||
return new Item(array(
|
||||
'manager' => $this,
|
||||
'name' => $name,
|
||||
@@ -451,12 +458,15 @@ class DbManager extends Manager
|
||||
{
|
||||
if ($this->usingSqlite()) {
|
||||
$this->db->createCommand()
|
||||
->delete($this->itemChildTable, array('or', 'parent=:name', 'child=:name'), array(':name' => $name));
|
||||
->delete($this->itemChildTable, array('or', 'parent=:name', 'child=:name'), array(':name' => $name))
|
||||
->execute();
|
||||
$this->db->createCommand()
|
||||
->delete($this->assignmentTable, array('item_name' => $name));
|
||||
->delete($this->assignmentTable, array('item_name' => $name))
|
||||
->execute();
|
||||
}
|
||||
return $this->db->createCommand()
|
||||
->delete($this->itemTable, array('name' => $name)) > 0;
|
||||
->delete($this->itemTable, array('name' => $name))
|
||||
->execute() > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -497,11 +507,14 @@ class DbManager extends Manager
|
||||
{
|
||||
if ($this->usingSqlite() && $oldName !== null && $item->getName() !== $oldName) {
|
||||
$this->db->createCommand()
|
||||
->update($this->itemChildTable, array('parent' => $item->getName()), array('parent' => $oldName));
|
||||
->update($this->itemChildTable, array('parent' => $item->getName()), array('parent' => $oldName))
|
||||
->execute();
|
||||
$this->db->createCommand()
|
||||
->update($this->itemChildTable, array('child' => $item->getName()), array('child' => $oldName));
|
||||
->update($this->itemChildTable, array('child' => $item->getName()), array('child' => $oldName))
|
||||
->execute();
|
||||
$this->db->createCommand()
|
||||
->update($this->assignmentTable, array('item_name' => $item->getName()), array('item_name' => $oldName));
|
||||
->update($this->assignmentTable, array('item_name' => $item->getName()), array('item_name' => $oldName))
|
||||
->execute();
|
||||
}
|
||||
|
||||
$this->db->createCommand()
|
||||
@@ -513,7 +526,8 @@ class DbManager extends Manager
|
||||
'data' => serialize($item->data),
|
||||
), array(
|
||||
'name' => $oldName === null ? $item->getName() : $oldName,
|
||||
));
|
||||
))
|
||||
->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -529,8 +543,8 @@ class DbManager extends Manager
|
||||
public function clearAll()
|
||||
{
|
||||
$this->clearAssignments();
|
||||
$this->db->createCommand()->delete($this->itemChildTable);
|
||||
$this->db->createCommand()->delete($this->itemTable);
|
||||
$this->db->createCommand()->delete($this->itemChildTable)->execute();
|
||||
$this->db->createCommand()->delete($this->itemTable)->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -538,7 +552,7 @@ class DbManager extends Manager
|
||||
*/
|
||||
public function clearAssignments()
|
||||
{
|
||||
$this->db->createCommand()->delete($this->assignmentTable);
|
||||
$this->db->createCommand()->delete($this->assignmentTable)->execute();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user