mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-15 05:53:08 +00:00
[DS-259] Community/collection admin should not to be able to delete their admin group
git-svn-id: http://scm.dspace.org/svn/repo/dspace/trunk@4093 9c30dcfa-912a-0410-8fc2-9e0234be79fd
This commit is contained in:
@@ -725,8 +725,20 @@ public class Collection extends DSpaceObject
|
|||||||
*/
|
*/
|
||||||
public void removeAdministrators() throws SQLException, AuthorizeException
|
public void removeAdministrators() throws SQLException, AuthorizeException
|
||||||
{
|
{
|
||||||
// Check authorisation - Must be an Admin to delete Admin Group
|
// Check authorisation - Must be an Admin of the parent community to delete Admin Group
|
||||||
AuthorizeManager.authorizeAction(ourContext, this, Constants.ADMIN);
|
Community[] parentCommunities = getCommunities();
|
||||||
|
if (parentCommunities != null && parentCommunities.length > 0)
|
||||||
|
{
|
||||||
|
AuthorizeManager.authorizeAction(ourContext, this.getCommunities()[0], Constants.ADMIN);
|
||||||
|
}
|
||||||
|
else if (!AuthorizeManager.isAdmin(ourContext))
|
||||||
|
{
|
||||||
|
// this should never happen, a collection should always have at least one parent community!
|
||||||
|
// anyway...
|
||||||
|
throw new AuthorizeException(
|
||||||
|
"Only system admin can remove the admin group of a collection outside any community",
|
||||||
|
this, Constants.ADMIN);
|
||||||
|
}
|
||||||
|
|
||||||
// just return if there is no administrative group.
|
// just return if there is no administrative group.
|
||||||
if (admins == null)
|
if (admins == null)
|
||||||
|
@@ -555,8 +555,18 @@ public class Community extends DSpaceObject
|
|||||||
*/
|
*/
|
||||||
public void removeAdministrators() throws SQLException, AuthorizeException
|
public void removeAdministrators() throws SQLException, AuthorizeException
|
||||||
{
|
{
|
||||||
// Check authorisation - Must be an Admin to delete Admin group
|
// Check authorisation - Must be an Admin of the parent community (or system admin) to delete Admin group
|
||||||
AuthorizeManager.authorizeAction(ourContext, this, Constants.ADMIN);
|
Community parentCommunity = getParentCommunity();
|
||||||
|
if (parentCommunity != null)
|
||||||
|
{
|
||||||
|
AuthorizeManager.authorizeAction(ourContext, parentCommunity, Constants.ADMIN);
|
||||||
|
}
|
||||||
|
else if (!AuthorizeManager.isAdmin(ourContext))
|
||||||
|
{
|
||||||
|
throw new AuthorizeException(
|
||||||
|
"Only system admin can remove the admin group of a top community",
|
||||||
|
this, Constants.ADMIN);
|
||||||
|
}
|
||||||
|
|
||||||
// just return if there is no administrative group.
|
// just return if there is no administrative group.
|
||||||
if (admins == null)
|
if (admins == null)
|
||||||
|
@@ -47,6 +47,7 @@
|
|||||||
- [DS-199] SWORD module doesn't accept X-No-Op header (dry run)
|
- [DS-199] SWORD module doesn't accept X-No-Op header (dry run)
|
||||||
- [DS-223] Submission process show previous button in JSPUI also if the step is the first "visible" step
|
- [DS-223] Submission process show previous button in JSPUI also if the step is the first "visible" step
|
||||||
- [DS-227] Values with double apos doesn't work in dropdown and list input type
|
- [DS-227] Values with double apos doesn't work in dropdown and list input type
|
||||||
|
- [DS-259] Community/collection admin should not to be able to delete their admin group
|
||||||
|
|
||||||
(Tim Donohue)
|
(Tim Donohue)
|
||||||
- [DS-218] Cannot add/remove email subscriptions from Profile page in XMLUI
|
- [DS-218] Cannot add/remove email subscriptions from Profile page in XMLUI
|
||||||
|
Reference in New Issue
Block a user