|
|
@@ -143,7 +143,8 @@ class AclShell extends AppShell {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Delete an ARO/ACO node.
|
|
|
+ * Delete an ARO/ACO node. Note there may be (as a result of poor configuration)
|
|
|
+ * multiple records with the same logical identifier. All are deleted.
|
|
|
*
|
|
|
* @return void
|
|
|
*/
|
|
|
@@ -151,12 +152,18 @@ class AclShell extends AppShell {
|
|
|
extract($this->_dataVars());
|
|
|
|
|
|
$identifier = $this->parseIdentifier($this->args[1]);
|
|
|
- $nodeId = $this->_getNodeId($class, $identifier);
|
|
|
+ if (is_string($identifier)) {
|
|
|
+ $identifier = array('alias' => $identifier);
|
|
|
+ }
|
|
|
|
|
|
- if (!$this->Acl->{$class}->delete($nodeId)) {
|
|
|
- $this->error(__d('cake_console', 'Node Not Deleted') . __d('cake_console', 'There was an error deleting the %s. Check that the node exists.', $class) . "\n");
|
|
|
+ if ($this->Acl->{$class}->find('all', array('conditions' => $identifier))) {
|
|
|
+ if (!$this->Acl->{$class}->deleteAll($identifier)) {
|
|
|
+ $this->error(__d('cake_console', 'Node Not Deleted. ') . __d('cake_console', 'There was an error deleting the %s.', $class) . "\n");
|
|
|
+ }
|
|
|
+ $this->out(__d('cake_console', '<success>%s deleted.</success>', $class), 2);
|
|
|
+ } else {
|
|
|
+ $this->error(__d('cake_console', 'Node Not Deleted. ') . __d('cake_console', 'There was an error deleting the %s. Node does not exist.', $class) . "\n");
|
|
|
}
|
|
|
- $this->out(__d('cake_console', '<success>%s deleted.</success>', $class), 2);
|
|
|
}
|
|
|
|
|
|
/**
|