package ro.nextreports.server.web.action.schedule;
import javax.annotation.Resource;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.model.StringResourceModel;
import ro.nextreports.server.domain.Entity;
import ro.nextreports.server.domain.SchedulerJob;
import ro.nextreports.server.service.SecurityService;
import ro.nextreports.server.util.PermissionUtil;
import ro.nextreports.server.util.ServerUtil;
import ro.nextreports.server.web.core.action.ActionContext;
import ro.nextreports.server.web.core.action.SingleActionContributor;
public class CloneActionContributor extends SingleActionContributor {
public static final String ID = CloneActionContributor.class.getName();
@Resource
private SecurityService securityService;
public void setSecurityService(SecurityService securityService) {
this.securityService = securityService;
}
public boolean support(Entity entity) {
if (entity instanceof SchedulerJob) {
try {
if (securityService.hasPermissionsById(ServerUtil.getUsername(),
PermissionUtil.getRead(), entity.getId())) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
return false;
}
public String getActionImage() {
return "images/schedule_clone.png";
}
public String getActionName() {
return new StringResourceModel("ActionContributor.Clone.name", null).getString();
}
public String getId() {
return ID;
}
public AbstractLink getLink(ActionContext context) {
return new CloneActionLink(context);
}
}