mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-09 02:54:20 +00:00
62 lines
1.8 KiB
Java
62 lines
1.8 KiB
Java
/**
|
|
* The contents of this file are subject to the license and copyright
|
|
* detailed in the LICENSE and NOTICE files at the root of the source
|
|
* tree and available online at
|
|
*
|
|
* http://www.dspace.org/license/
|
|
*/
|
|
package org.dspace.curate;
|
|
|
|
import java.sql.SQLException;
|
|
|
|
import org.apache.commons.cli.Options;
|
|
import org.dspace.authorize.service.AuthorizeService;
|
|
import org.dspace.core.Context;
|
|
import org.dspace.scripts.configuration.ScriptConfiguration;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
/**
|
|
* The {@link ScriptConfiguration} for the {@link CurationCli} script
|
|
*
|
|
* @author Maria Verdonck (Atmire) on 23/06/2020
|
|
*/
|
|
public class CurationScriptConfiguration<T extends CurationCli> extends ScriptConfiguration<T> {
|
|
|
|
@Autowired
|
|
private AuthorizeService authorizeService;
|
|
|
|
private Class<T> dspaceRunnableClass;
|
|
|
|
@Override
|
|
public Class<T> getDspaceRunnableClass() {
|
|
return this.dspaceRunnableClass;
|
|
}
|
|
|
|
@Override
|
|
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
|
|
this.dspaceRunnableClass = dspaceRunnableClass;
|
|
}
|
|
|
|
/**
|
|
* Only admin can run Curation script via the scripts and processes endpoints.
|
|
* @param context The relevant DSpace context
|
|
* @return True if currentUser is admin, otherwise false
|
|
*/
|
|
@Override
|
|
public boolean isAllowedToExecute(Context context) {
|
|
try {
|
|
return authorizeService.isAdmin(context);
|
|
} catch (SQLException e) {
|
|
throw new RuntimeException("SQLException occurred when checking if the current user is an admin", e);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Options getOptions() {
|
|
if (options == null) {
|
|
super.options = CurationClientOptions.constructOptions();
|
|
}
|
|
return options;
|
|
}
|
|
}
|