/* * Copyright 2005-2010 the original author or authors. * * 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.wamblee.security.authorization; import javax.persistence.Column; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.Transient; import org.wamblee.security.authentication.UserAdministration; /** * Checks if a user against a specific group. * * @author Erik Brakkee */ @Entity @DiscriminatorValue("GROUP") public class GroupUserCondition extends AbstractUserCondition { /** * Group the user must be in. */ @Column(name = "GRP") private String group; @Transient private UserAdministration admin; /** * Constructs the condition. * * @param aGroup * Group the user must be in. */ public GroupUserCondition(String aGroup) { group = aGroup; } /** * For OR mapping. * */ protected GroupUserCondition() { group = null; } @Override public void setUserAdmin(UserAdministration aAdmin) { admin = aAdmin; } @Override public boolean matches(String aUser) { return admin.isInGroup(aUser, group); } /** * * @return Returns the group. */ protected String getGroup() { return group; } /** * * @param aGroup * The group to set. */ protected void setGroup(String aGroup) { group = aGroup; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "GroupUserCondition(group=" + group + ")"; } }