/**
* Copyright (c) Istituto Nazionale di Fisica Nucleare (INFN). 2006-2016
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
*
*/
package org.glite.security.voms.admin.view.actions;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.RequestAware;
import org.glite.security.voms.admin.configuration.VOMSConfiguration;
import org.glite.security.voms.admin.error.NullArgumentException;
import org.glite.security.voms.admin.operations.groups.FindGroupOperation;
import org.glite.security.voms.admin.operations.roles.FindRoleOperation;
import org.glite.security.voms.admin.operations.users.FindUserOperation;
import org.glite.security.voms.admin.persistence.dao.VOMSAdminDAO;
import org.glite.security.voms.admin.persistence.dao.VOMSGroupDAO;
import org.glite.security.voms.admin.persistence.dao.VOMSRoleDAO;
import org.glite.security.voms.admin.persistence.model.VOMSAdmin;
import org.glite.security.voms.admin.persistence.model.VOMSGroup;
import org.glite.security.voms.admin.persistence.model.VOMSRole;
import org.glite.security.voms.admin.persistence.model.VOMSUser;
import org.glite.security.voms.admin.util.URLBuilder;
import org.hibernate.Hibernate;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ValidationAware;
public class BaseAction extends ActionSupport implements ValidationAware, RequestAware {
/**
*
*/
private static final long serialVersionUID = 1L;
public static final String INPUT_FORM_REGEX = "^[^<>&=;]*$";
public static final String INPUT_DN_REGEX = "^[^<>&;]*$";
public static final String SEARCH = "search";
public static final String LIST = "list";
public static final String EDIT = "edit";
public static final String CREATE = "create";
public static final String SAVE = "save";
public static final String AUTHZ_ERROR = "authorizationError";
private Map<String, Object> request;
protected VOMSUser userById(Long id) {
if (id == null)
throw new NullArgumentException("'id' cannot be null!");
VOMSUser user = (VOMSUser) FindUserOperation.instance(id).execute();
if (user != null){
Hibernate.initialize(user.getMappings());
Hibernate.initialize(user.getAttributes());
}
return user;
}
protected VOMSGroup groupByName(String name) {
if (name == null)
throw new NullArgumentException("'name' cannot be null!");
return (VOMSGroup) FindGroupOperation.instance(name).execute();
}
protected VOMSAdmin adminById(Long id) {
if (id == null)
throw new NullArgumentException("'id' cannot be null!");
return VOMSAdminDAO.instance().getById(id);
}
protected VOMSGroup getVORootGroup() {
return VOMSGroupDAO.instance().getVOGroup();
}
protected VOMSRole getGroupManagerRole() {
return VOMSRoleDAO.instance().findByName(VOMSConfiguration
.instance().getGroupManagerRoleName());
}
protected VOMSGroup groupById(Long id) {
if (id == null)
throw new NullArgumentException("'id' cannot be null!");
return (VOMSGroup) FindGroupOperation.instance(id).execute();
}
protected VOMSRole roleById(Long id) {
if (id == null)
throw new NullArgumentException("'id' cannot be null!");
return (VOMSRole) FindRoleOperation.instance(id).execute();
}
protected VOMSRole roleByName(String name) {
if (name == null)
throw new NullArgumentException("'name' cannot be null!");
return (VOMSRole) FindRoleOperation.instance(name).execute();
}
protected String getHomeURL() {
return URLBuilder.baseVOMSURLFromConfiguration() + "/admin/home.action";
}
protected Date getFutureDate(Date initialDate, int field, int increment) {
Calendar c = Calendar.getInstance();
c.setTime(initialDate);
c.add(field, increment);
return c.getTime();
}
protected Date getDefaultFutureDate() {
return getFutureDate(new Date(), Calendar.DAY_OF_YEAR, 7);
}
public String getNamespaceName() {
String namespaceName = ServletActionContext.getActionMapping()
.getNamespace();
int subNameIndex = namespaceName.lastIndexOf("/");
if (subNameIndex == -1) {
return "";
}
String result = namespaceName.substring(subNameIndex + 1);
return result;
}
public String getActionName() {
return ServletActionContext.getActionMapping().getName();
}
@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
public Map<String, Object> getRequest(){
return request;
}
}