From 4e3c152fa7e97200855ba0d2716362dbe7976920 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 04 Jan 2013 17:23:23 -0500 Subject: [PATCH] Support local accounts with LdapUserService and RedmineUserService (issue-183) --- src/com/gitblit/GitBlit.java | 32 ++++++++++++++++++++++++-------- 1 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/com/gitblit/GitBlit.java b/src/com/gitblit/GitBlit.java index 30071bb..74d32df 100644 --- a/src/com/gitblit/GitBlit.java +++ b/src/com/gitblit/GitBlit.java @@ -471,36 +471,48 @@ this.userService.setup(settings); } + public boolean supportsAddUser() { + return supportsCredentialChanges(new UserModel("")); + } + /** + * Returns true if the user's credentials can be changed. * + * @param user * @return true if the user service supports credential changes */ - public boolean supportsCredentialChanges() { - return userService.supportsCredentialChanges(); + public boolean supportsCredentialChanges(UserModel user) { + return (user != null && user.isLocalAccount()) || userService.supportsCredentialChanges(); } /** + * Returns true if the user's display name can be changed. * + * @param user * @return true if the user service supports display name changes */ - public boolean supportsDisplayNameChanges() { - return userService.supportsDisplayNameChanges(); + public boolean supportsDisplayNameChanges(UserModel user) { + return (user != null && user.isLocalAccount()) || userService.supportsDisplayNameChanges(); } /** + * Returns true if the user's email address can be changed. * + * @param user * @return true if the user service supports email address changes */ - public boolean supportsEmailAddressChanges() { - return userService.supportsEmailAddressChanges(); + public boolean supportsEmailAddressChanges(UserModel user) { + return (user != null && user.isLocalAccount()) || userService.supportsEmailAddressChanges(); } /** + * Returns true if the user's team memberships can be changed. * + * @param user * @return true if the user service supports team membership changes */ - public boolean supportsTeamMembershipChanges() { - return userService.supportsTeamMembershipChanges(); + public boolean supportsTeamMembershipChanges(UserModel user) { + return (user != null && user.isLocalAccount()) || userService.supportsTeamMembershipChanges(); } /** @@ -789,6 +801,10 @@ * @return the effective list of permissions for the user */ public List<RegistrantAccessPermission> getUserAccessPermissions(UserModel user) { + if (StringUtils.isEmpty(user.username)) { + // new user + return new ArrayList<RegistrantAccessPermission>(); + } Set<RegistrantAccessPermission> set = new LinkedHashSet<RegistrantAccessPermission>(); set.addAll(user.getRepositoryPermissions()); // Flag missing repositories -- Gitblit v1.9.1