From 2865ad26aa888bee940acdd4dcd6b84ff49f2391 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Sun, 27 Nov 2011 20:19:31 +0100 Subject: [PATCH] fix possible nullpointerexception --- .../sonia/scm/repository/PermissionUtil.java | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/PermissionUtil.java b/scm-core/src/main/java/sonia/scm/repository/PermissionUtil.java index c5e2d8fabf..17e684d5e7 100644 --- a/scm-core/src/main/java/sonia/scm/repository/PermissionUtil.java +++ b/scm-core/src/main/java/sonia/scm/repository/PermissionUtil.java @@ -118,26 +118,33 @@ public class PermissionUtil public static boolean hasPermission(Repository repository, WebSecurityContext securityContext, PermissionType pt) { - User user = securityContext.getUser(); - String username = user.getName(); - - AssertUtil.assertIsNotEmpty(username); - boolean result = false; - if (user.isAdmin() - || ((pt == PermissionType.READ) && repository.isPublicReadable())) + if (securityContext != null) { - result = true; - } - else - { - List permissions = repository.getPermissions(); + User user = securityContext.getUser(); - if (permissions != null) + if (user != null) { - result = hasPermission(permissions, username, - securityContext.getGroups(), pt); + String username = user.getName(); + + AssertUtil.assertIsNotEmpty(username); + + if (user.isAdmin() + || ((pt == PermissionType.READ) && repository.isPublicReadable())) + { + result = true; + } + else + { + List permissions = repository.getPermissions(); + + if (permissions != null) + { + result = hasPermission(permissions, username, + securityContext.getGroups(), pt); + } + } } }