/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse.engine.command.impl;
import edu.harvard.iq.dataverse.DataFile;
import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser;
import edu.harvard.iq.dataverse.engine.command.AbstractCommand;
import edu.harvard.iq.dataverse.engine.command.CommandContext;
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
import edu.harvard.iq.dataverse.engine.command.RequiredPermissions;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
/**
*
* @author gdurand
*/
@RequiredPermissions({})
public class RequestAccessCommand extends AbstractCommand<DataFile> {
private final DataFile file;
private final AuthenticatedUser requester;
public RequestAccessCommand(DataverseRequest dvRequest, DataFile file) {
// for data file check permission on owning dataset
super(dvRequest, file);
this.file = file;
this.requester = (AuthenticatedUser) dvRequest.getUser();
}
@Override
public DataFile execute(CommandContext ctxt) throws CommandException {
file.getFileAccessRequesters().add(requester);
return ctxt.files().save(file);
}
}