cc-4304: Implemented default behaviour to cascade delete all the files
This commit is contained in:
parent
984a26d819
commit
a11ec08154
2 changed files with 32 additions and 4 deletions
|
@ -97,14 +97,39 @@ class UserController extends Zend_Controller_Action
|
||||||
// action body
|
// action body
|
||||||
$delId = $this->_getParam('id');
|
$delId = $this->_getParam('id');
|
||||||
|
|
||||||
|
$valid_actions = array("delete_cascade", "reassign_to");
|
||||||
|
|
||||||
|
$files_action = $this->_getParam('deleted_files');
|
||||||
|
|
||||||
|
# TODO : remove this. we only use default for now not to break the UI.
|
||||||
|
if (!$files_action) { # set default action
|
||||||
|
$files_action = "delete_cascade";
|
||||||
|
}
|
||||||
|
|
||||||
|
# only delete when valid action is selected for the owned files
|
||||||
|
if (! in_array($files_action, $valid_actions) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
$userId = $userInfo->id;
|
$userId = $userInfo->id;
|
||||||
|
|
||||||
if ($delId != $userId) {
|
# Don't let users delete themselves
|
||||||
|
if ($delId == $userId) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$user = new Application_Model_User($delId);
|
$user = new Application_Model_User($delId);
|
||||||
|
|
||||||
|
# Take care of the user's files by either assigning them to somebody
|
||||||
|
# or deleting them all
|
||||||
|
if ($files_action == "delete_cascade") {
|
||||||
|
$user->deleteAllFiles();
|
||||||
|
} elseif ($files_action == "reassign_to") {
|
||||||
|
$new_owner = $this->_getParam("new_owner");
|
||||||
|
$user->reassignTo( $new_owner );
|
||||||
|
}
|
||||||
|
# Finally delete the user
|
||||||
$this->view->entries = $user->delete();
|
$this->view->entries = $user->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -249,6 +249,9 @@ class Application_Model_User
|
||||||
public function deleteAllFiles()
|
public function deleteAllFiles()
|
||||||
{
|
{
|
||||||
$my_files = $this->getOwnedFiles();
|
$my_files = $this->getOwnedFiles();
|
||||||
|
foreach ($files as $file) {
|
||||||
|
$file->delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createUser()
|
private function createUser()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue