Re-assign files to first non deleted admin user
This commit is contained in:
parent
3233ccd151
commit
2ea19f20fe
2 changed files with 20 additions and 3 deletions
|
@ -204,7 +204,7 @@ class UserController extends Zend_Controller_Action
|
||||||
# TODO : remove this. we only use default for now not to break the UI.
|
# TODO : remove this. we only use default for now not to break the UI.
|
||||||
if (!$files_action) { # set default action
|
if (!$files_action) { # set default action
|
||||||
$files_action = "reassign_to";
|
$files_action = "reassign_to";
|
||||||
$new_owner = Application_Model_User::getFirstAdmin();
|
$new_owner = Application_Model_User::getFirstAdmin($delId);
|
||||||
}
|
}
|
||||||
|
|
||||||
# only delete when valid action is selected for the owned files
|
# only delete when valid action is selected for the owned files
|
||||||
|
|
|
@ -253,12 +253,29 @@ class Application_Model_User
|
||||||
return CcSubjsQuery::create()->filterByDbType($type)->find();
|
return CcSubjsQuery::create()->filterByDbType($type)->find();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getFirstAdmin() {
|
/**
|
||||||
|
* Get the first admin user from the database
|
||||||
|
*
|
||||||
|
* This function gets used in UserController in the delete action. The controller
|
||||||
|
* uses it to figure out who to reassign the deleted users files to.
|
||||||
|
*
|
||||||
|
* @param $ignoreUser String optional userid of a user that shall be ignored when
|
||||||
|
* when looking for the "first" admin.
|
||||||
|
*
|
||||||
|
* @return CcSubj|null
|
||||||
|
*/
|
||||||
|
public static function getFirstAdmin($ignoreUser = null) {
|
||||||
$superAdmins = Application_Model_User::getUsersOfType('S');
|
$superAdmins = Application_Model_User::getUsersOfType('S');
|
||||||
if (count($superAdmins) > 0) { // found superadmin => pick first one
|
if (count($superAdmins) > 0) { // found superadmin => pick first one
|
||||||
return $superAdmins[0];
|
return $superAdmins[0];
|
||||||
} else {
|
} else {
|
||||||
$admins = Application_Model_User::getUsersOfType('A');
|
// get all admin users
|
||||||
|
$query = CcSubjsQuery::create()->filterByDbType('A');
|
||||||
|
// ignore current user if one was specified
|
||||||
|
if ($ignoreUser !== null) {
|
||||||
|
$query->filterByDbId($ignoreUser, Criteria::NOT_EQUAL);
|
||||||
|
}
|
||||||
|
$admins = $query->find();
|
||||||
if (count($admins) > 0) { // found admin => pick first one
|
if (count($admins) > 0) { // found admin => pick first one
|
||||||
return $admins[0];
|
return $admins[0];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue