From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 25 Feb 2013 08:40:30 -0500 Subject: [PATCH] Merge pull request #75 from thefake/master --- src/com/gitblit/models/UserModel.java | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java index bd40985..bec011d 100644 --- a/src/com/gitblit/models/UserModel.java +++ b/src/com/gitblit/models/UserModel.java @@ -29,6 +29,7 @@ import com.gitblit.Constants.AccessPermission; import com.gitblit.Constants.AccessRestrictionType; +import com.gitblit.Constants.AccountType; import com.gitblit.Constants.AuthorizationControl; import com.gitblit.Constants.PermissionType; import com.gitblit.Constants.RegistrantType; @@ -73,15 +74,22 @@ // non-persisted fields public boolean isAuthenticated; + public AccountType accountType; public UserModel(String username) { this.username = username; this.isAuthenticated = true; + this.accountType = AccountType.LOCAL; } private UserModel() { this.username = "$anonymous"; this.isAuthenticated = false; + this.accountType = AccountType.LOCAL; + } + + public boolean isLocalAccount() { + return accountType.isLocal(); } /** @@ -100,8 +108,7 @@ @Deprecated @Unused public boolean canAccessRepository(RepositoryModel repository) { - boolean isOwner = !StringUtils.isEmpty(repository.owner) - && repository.owner.equals(username); + boolean isOwner = repository.isOwner(username); boolean allowAuthenticated = isAuthenticated && AuthorizationControl.AUTHENTICATED.equals(repository.authorizationControl); return canAdmin() || isOwner || repositories.contains(repository.name.toLowerCase()) || hasTeamAccess(repository.name) || allowAuthenticated; @@ -360,6 +367,12 @@ public boolean canView(RepositoryModel repository) { return canAccess(repository, AccessRestrictionType.VIEW, AccessPermission.VIEW); } + + public boolean canView(RepositoryModel repository, String ref) { + // Default UserModel doesn't implement ref-level security. + // Other Realms (i.e. Gerrit) may override this method. + return canView(repository); + } public boolean canClone(RepositoryModel repository) { return canAccess(repository, AccessRestrictionType.CLONE, AccessPermission.CLONE); @@ -587,9 +600,10 @@ return nameVerified && emailVerified; } + @Deprecated public boolean hasBranchPermission(String repositoryName, String branch) { // Default UserModel doesn't implement branch-level security. Other Realms (i.e. Gerrit) may override this method. - return hasRepositoryPermission(repositoryName); + return hasRepositoryPermission(repositoryName) || hasTeamRepositoryPermission(repositoryName); } public boolean isMyPersonalRepository(String repository) { -- Gitblit v1.9.1