All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jasig.schedassist.impl.owner.RequiredAttributeOwnerAuthorizationImpl Maven / Gradle / Ivy

There is a newer version: 1.1.4
Show newest version
/**
 * Licensed to Jasig under one or more contributor license
 * agreements. See the NOTICE file distributed with this work
 * for additional information regarding copyright ownership.
 * Jasig licenses this file to you 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.jasig.schedassist.impl.owner;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jasig.schedassist.model.ICalendarAccount;
import org.springframework.beans.factory.annotation.Required;

/**
 * {@link OwnerAuthorization} implementation that checks for a
 * non-empty value of a specific attribute on the {@link ICalendarAccount}.
 * 
 * If attributeValuePattern is set, the {@link #isEligible(ICalendarAccount)}
 * implementation also checks that the user's attribute value matches
 * the pattern.
 * 
 * @author Nicholas Blair, [email protected]
 * @version $Header: RequiredAttributeOwnerAuthorizationImpl.java Exp $
 */
public class RequiredAttributeOwnerAuthorizationImpl implements
		OwnerAuthorization {

	private Log LOG = LogFactory.getLog(this.getClass());
	private String attributeName = "wisceduisisadvisoremplid";
	private Pattern attributeValuePattern;
	
	/**
	 * @param attributeName the attributeName to set
	 */
	@Required
	public void setAttributeName(final String attributeName) {
		this.attributeName = attributeName;
	}

	/**
	 * @param attributeValuePattern the attributeValuePattern to set
	 */
	public void setAttributeValuePattern(final String attributeValuePattern) {
		this.attributeValuePattern = Pattern.compile(attributeValuePattern);
	}

	/*
	 * (non-Javadoc)
	 * @see org.jasig.schedassist.impl.owner.OwnerAuthorization#isEligible(org.jasig.schedassist.model.ICalendarAccount)
	 */
	@Override
	public boolean isEligible(final ICalendarAccount user) {
		String userAttributeValue = user.getAttributeValue(this.attributeName);
		if(null != attributeValuePattern) {
			// test for pattern equality
			Matcher m = attributeValuePattern.matcher(userAttributeValue);
			if(m.matches()) {
				LOG.debug("user is eligible " + user);
				return true;
			} 
		} else {
			// test just for existence (non-blank)
			if(!StringUtils.isBlank("userAttributeValue")) {
				LOG.debug("user is eligible " + user);
				return true;
			}
		}
		LOG.debug("user is not eligible " + user);
		return false;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy