package edu.asu.spring.quadriga.validator;
import java.util.regex.Pattern;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.Errors;
import edu.asu.spring.quadriga.accesschecks.IProjectSecurityChecker;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
@Service
public class UnixNameValidator implements IUnixNameValidator {
@Autowired
private IProjectSecurityChecker projectCheckSecurityManager;
/**
* This method validates if the Unix name contains letters other than the
* mentioned value in the regular expression
*
* @param unixName
* @param err
* @author Karthikeyan Mohan
*/
public void validateUnixNameExp(String unixName, Errors err) {
String regex = "^[a-zA-Z0-9-_.+]*$";
Pattern pattern = Pattern.compile(regex);
if (!pattern.matcher(unixName).matches()) {
err.rejectValue("unixName", "project_UnixName.expression");
} else if (unixName.trim().equalsIgnoreCase("")) {
err.rejectValue("unixName", "project_unixname.required" + "");
}
}
/**
* This method validates if the entered Unix name is duplicate or not
*
* @param unixName
* @param projectId
* @param err
* @throws QuadrigaStorageException
* @author Karthikeyan Mohan
*/
public void validateUnixName(String unixName, String projectId, Errors err) throws QuadrigaStorageException {
// Verifying if the Unix name already exists
boolean isDuplicate = projectCheckSecurityManager.isUnixnameInUse(unixName, projectId);
if (isDuplicate) {
err.rejectValue("unixName", "projectUnixName.unique");
}
}
}