1 /* 2 * This file is part of *** M y C o R e *** 3 * See http://www.mycore.de/ for details. 4 * 5 * MyCoRe is free software: you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation, either version 3 of the License, or 8 * (at your option) any later version. 9 * 10 * MyCoRe is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with MyCoRe. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 package org.mycore.common; 20 21 /** 22 * Encapsulates informations about the current authenticated user. 23 * 24 * A instance of this interface is always bound to {@link MCRSession} 25 * and can be requested via {@link MCRSession#getUserInformation()}. 26 * An implementer of this interface should bind the instance to the session via 27 * {@link MCRSession#setUserInformation(MCRUserInformation)}. 28 * @author Thomas Scheffler (yagee) 29 * 30 */ 31 public interface MCRUserInformation { 32 33 String ATT_PRIMARY_GROUP = "primaryGroup"; 34 35 String ATT_REAL_NAME = "realName"; 36 37 String ATT_EMAIL = "eMail"; 38 39 /** 40 * The UserID is the information that is used in <em>user</em> clauses of the ACL System. 41 */ 42 String getUserID(); 43 44 /** 45 * The role information is used in <em>group</em> clauses of the ACL System. 46 */ 47 boolean isUserInRole(String role); 48 49 /** 50 * Get additional attributes if they are provided by the underlying user system 51 * @param attribute user attribute name 52 * @return attribute value as String or null if no value is defined; 53 */ 54 String getUserAttribute(String attribute); 55 56 }