001package org.apache.archiva.redback.users.configurable; 002 003/* 004 * Copyright 2001-2007 The Apache Software Foundation. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019import org.apache.archiva.redback.configuration.UserConfiguration; 020import org.apache.archiva.redback.configuration.UserConfigurationKeys; 021import org.apache.archiva.redback.users.AbstractUserManager; 022import org.apache.archiva.redback.users.User; 023import org.apache.archiva.redback.users.UserManager; 024import org.apache.archiva.redback.users.UserManagerException; 025import org.apache.archiva.redback.users.UserNotFoundException; 026import org.apache.archiva.redback.users.UserQuery; 027import org.springframework.context.ApplicationContext; 028import org.springframework.stereotype.Service; 029 030import javax.annotation.PostConstruct; 031import javax.inject.Inject; 032import javax.inject.Named; 033import java.util.List; 034 035/** 036 * @author jesse 037 */ 038@Service( "userManager#configurable" ) 039public class ConfigurableUserManager 040 extends AbstractUserManager 041 implements UserManager 042{ 043 @Inject 044 @Named( value = "userConfiguration#default" ) 045 private UserConfiguration config; 046 047 @Inject 048 private ApplicationContext applicationContext; 049 050 private UserManager userManagerImpl; 051 052 053 @Override 054 @PostConstruct 055 public void initialize() 056 { 057 String userManagerRole = config.getString( UserConfigurationKeys.USER_MANAGER_IMPL ); 058 059 if ( userManagerRole == null ) 060 { 061 throw new RuntimeException( "User Manager Configuration Missing: " + UserConfigurationKeys.USER_MANAGER_IMPL 062 + " configuration property" ); 063 } 064 065 log.info( "use userManager impl with key: '{}'", userManagerRole ); 066 067 userManagerImpl = applicationContext.getBean( "userManager#" + userManagerRole, UserManager.class ); 068 } 069 070 @Override 071 public User addUser( User user ) 072 throws UserManagerException 073 { 074 return userManagerImpl.addUser( user ); 075 } 076 077 @Override 078 public void addUserUnchecked( User user ) 079 throws UserManagerException 080 { 081 userManagerImpl.addUserUnchecked( user ); 082 } 083 084 @Override 085 public User createUser( String username, String fullName, String emailAddress ) 086 throws UserManagerException 087 { 088 return userManagerImpl.createUser( username, fullName, emailAddress ); 089 } 090 091 @Override 092 public UserQuery createUserQuery() 093 { 094 return userManagerImpl.createUserQuery(); 095 } 096 097 @Override 098 public void deleteUser( String username ) 099 throws UserNotFoundException, UserManagerException 100 { 101 userManagerImpl.deleteUser( username ); 102 } 103 104 @Override 105 public void eraseDatabase() 106 { 107 userManagerImpl.eraseDatabase(); 108 } 109 110 @Override 111 public User findUser( String username ) 112 throws UserManagerException, UserNotFoundException 113 { 114 return userManagerImpl.findUser( username ); 115 } 116 117 @Override 118 public User findUser( String username, boolean useCache ) 119 throws UserNotFoundException, UserManagerException 120 { 121 return userManagerImpl.findUser( username, useCache ); 122 } 123 124 @Override 125 public User getGuestUser() 126 throws UserNotFoundException, UserManagerException 127 { 128 return userManagerImpl.getGuestUser(); 129 } 130 131 @Override 132 public List<? extends User> findUsersByEmailKey( String emailKey, boolean orderAscending ) 133 throws UserManagerException 134 { 135 return userManagerImpl.findUsersByEmailKey( emailKey, orderAscending ); 136 } 137 138 @Override 139 public List<? extends User> findUsersByFullNameKey( String fullNameKey, boolean orderAscending ) 140 throws UserManagerException 141 { 142 return userManagerImpl.findUsersByFullNameKey( fullNameKey, orderAscending ); 143 } 144 145 @Override 146 public List<? extends User> findUsersByQuery( UserQuery query ) 147 throws UserManagerException 148 { 149 return userManagerImpl.findUsersByQuery( query ); 150 } 151 152 @Override 153 public List<? extends User> findUsersByUsernameKey( String usernameKey, boolean orderAscending ) 154 throws UserManagerException 155 { 156 return userManagerImpl.findUsersByUsernameKey( usernameKey, orderAscending ); 157 } 158 159 @Override 160 public String getId() 161 { 162 return "configurable"; 163 } 164 165 @Override 166 public List<? extends User> getUsers() 167 throws UserManagerException 168 { 169 return userManagerImpl.getUsers(); 170 } 171 172 @Override 173 public List<? extends User> getUsers( boolean orderAscending ) 174 throws UserManagerException 175 { 176 return userManagerImpl.getUsers( orderAscending ); 177 } 178 179 @Override 180 public boolean isReadOnly() 181 { 182 return userManagerImpl.isReadOnly(); 183 } 184 185 @Override 186 public User updateUser( User user ) 187 throws UserNotFoundException, UserManagerException 188 { 189 return updateUser( user, false ); 190 } 191 192 @Override 193 public User updateUser( User user, boolean passwordChangeRequired ) 194 throws UserNotFoundException, UserManagerException 195 { 196 return userManagerImpl.updateUser( user, passwordChangeRequired ); 197 } 198 199 @Override 200 public boolean userExists( String userName ) 201 throws UserManagerException 202 { 203 return userManagerImpl.userExists( userName ); 204 } 205 206 public void setUserManagerImpl( UserManager userManagerImpl ) 207 { 208 this.userManagerImpl = userManagerImpl; 209 } 210 211 @Override 212 public String getDescriptionKey() 213 { 214 return "archiva.redback.usermanager.configurable"; 215 } 216}