diff options
Diffstat (limited to 'src/com/gitblit/GitFilter.java')
-rw-r--r-- | src/com/gitblit/GitFilter.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/com/gitblit/GitFilter.java b/src/com/gitblit/GitFilter.java index e76fd767..4ae5b6c2 100644 --- a/src/com/gitblit/GitFilter.java +++ b/src/com/gitblit/GitFilter.java @@ -105,11 +105,19 @@ public class GitFilter extends AccessRestrictionFilter { * Determine if the repository requires authentication.
*
* @param repository
+ * @param action
* @return true if authentication required
*/
@Override
- protected boolean requiresAuthentication(RepositoryModel repository) {
- return repository.accessRestriction.atLeast(AccessRestrictionType.PUSH);
+ protected boolean requiresAuthentication(RepositoryModel repository, String action) {
+ if (gitUploadPack.equals(action)) {
+ // send to client
+ return repository.accessRestriction.atLeast(AccessRestrictionType.CLONE);
+ } else if (gitReceivePack.equals(action)) {
+ // receive from client
+ return repository.accessRestriction.atLeast(AccessRestrictionType.PUSH);
+ }
+ return false;
}
/**
|