| | |
| | |
|
| | | import com.gitblit.models.TeamModel;
|
| | | import com.gitblit.models.UserModel;
|
| | | import com.gitblit.utils.DeepCopier;
|
| | |
|
| | | /**
|
| | | * This class wraps the default user service and is recommended as the starting
|
| | |
| | | public void setup(IStoredSettings settings) {
|
| | | File realmFile = GitBlit.getFileOrFolder(Keys.realm.userService, "users.conf");
|
| | | serviceImpl = createUserService(realmFile);
|
| | | logger.info("GUS delegating to " + serviceImpl.toString());
|
| | | }
|
| | |
|
| | | @SuppressWarnings("deprecation")
|
| | |
| | |
|
| | | assert service != null;
|
| | |
|
| | | if (realmFile.exists()) {
|
| | | if (!realmFile.exists()) {
|
| | | // Create the Administrator account for a new realm file
|
| | | try {
|
| | | realmFile.createNewFile();
|
| | |
| | | logger.info(MessageFormat.format("Automatically creating {0} based on {1}",
|
| | | usersConfig.getAbsolutePath(), realmFile.getAbsolutePath()));
|
| | | ConfigUserService configService = new ConfigUserService(usersConfig);
|
| | | for (String username : serviceImpl.getAllUsernames()) {
|
| | | UserModel userModel = serviceImpl.getUserModel(username);
|
| | | for (String username : service.getAllUsernames()) {
|
| | | UserModel userModel = service.getUserModel(username);
|
| | | configService.updateUserModel(userModel);
|
| | | }
|
| | | }
|
| | |
| | | logger.warn("Please consider using \"users.conf\" instead of the deprecated \"users.properties\" file");
|
| | | }
|
| | | return service;
|
| | | }
|
| | | |
| | | @Override
|
| | | public String toString() {
|
| | | return getClass().getSimpleName();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean supportsCredentialChanges() {
|
| | | return serviceImpl.supportsCredentialChanges();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean supportsDisplayNameChanges() {
|
| | | return serviceImpl.supportsDisplayNameChanges();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean supportsEmailAddressChanges() {
|
| | | return serviceImpl.supportsEmailAddressChanges();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean supportsTeamMembershipChanges() {
|
| | | return serviceImpl.supportsTeamMembershipChanges();
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | public UserModel authenticate(String username, char[] password) {
|
| | | return serviceImpl.authenticate(username, password);
|
| | | }
|
| | | |
| | | @Override
|
| | | public void logout(UserModel user) {
|
| | | serviceImpl.logout(user);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserModel getUserModel(String username) {
|
| | |
| | |
|
| | | @Override
|
| | | public boolean updateUserModel(String username, UserModel model) {
|
| | | return serviceImpl.updateUserModel(username, model);
|
| | | if (supportsCredentialChanges()) {
|
| | | if (!supportsTeamMembershipChanges()) {
|
| | | // teams are externally controlled - copy from original model
|
| | | UserModel existingModel = getUserModel(username);
|
| | | |
| | | model = DeepCopier.copy(model);
|
| | | model.teams.clear();
|
| | | model.teams.addAll(existingModel.teams);
|
| | | }
|
| | | return serviceImpl.updateUserModel(username, model);
|
| | | }
|
| | | if (model.username.equals(username)) {
|
| | | // passwords are not persisted by the backing user service
|
| | | model.password = null;
|
| | | if (!supportsTeamMembershipChanges()) {
|
| | | // teams are externally controlled- copy from original model
|
| | | UserModel existingModel = getUserModel(username);
|
| | | |
| | | model = DeepCopier.copy(model);
|
| | | model.teams.clear();
|
| | | model.teams.addAll(existingModel.teams);
|
| | | }
|
| | | return serviceImpl.updateUserModel(username, model);
|
| | | }
|
| | | logger.error("Users can not be renamed!");
|
| | | return false;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public boolean deleteUserModel(UserModel model) {
|
| | | return serviceImpl.deleteUserModel(model);
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public List<UserModel> getAllUsers() {
|
| | | return serviceImpl.getAllUsers();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<String> getAllTeamNames() {
|
| | | return serviceImpl.getAllTeamNames();
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<TeamModel> getAllTeams() {
|
| | | return serviceImpl.getAllTeams();
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | |
|
| | | @Override
|
| | | public boolean updateTeamModel(String teamname, TeamModel model) {
|
| | | if (!supportsTeamMembershipChanges()) {
|
| | | // teams are externally controlled - copy from original model
|
| | | TeamModel existingModel = getTeamModel(teamname);
|
| | | |
| | | model = DeepCopier.copy(model);
|
| | | model.users.clear();
|
| | | model.users.addAll(existingModel.users);
|
| | | }
|
| | | return serviceImpl.updateTeamModel(teamname, model);
|
| | | }
|
| | |
|