summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/models
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2012-10-19 21:32:57 -0400
committerJames Moger <james.moger@gitblit.com>2012-10-19 22:47:34 -0400
commit822dfe5d6f1b97b7849bc6fd735ee8c9d1103c19 (patch)
tree4c97cc8056ad3ce928119aff786ad3c89bb3546a /src/com/gitblit/models
parent97a71565f6ff5d9722788559ce638863a9e618ab (diff)
downloadgitblit-822dfe5d6f1b97b7849bc6fd735ee8c9d1103c19.tar.gz
gitblit-822dfe5d6f1b97b7849bc6fd735ee8c9d1103c19.zip
Completed permissions UI, RPC, and Manager support (issue 36)
Diffstat (limited to 'src/com/gitblit/models')
-rw-r--r--src/com/gitblit/models/RegistrantAccessPermission.java (renamed from src/com/gitblit/models/RepositoryAccessPermission.java)26
-rw-r--r--src/com/gitblit/models/TeamAccessPermission.java51
-rw-r--r--src/com/gitblit/models/TeamModel.java7
-rw-r--r--src/com/gitblit/models/UserAccessPermission.java51
-rw-r--r--src/com/gitblit/models/UserModel.java11
5 files changed, 27 insertions, 119 deletions
diff --git a/src/com/gitblit/models/RepositoryAccessPermission.java b/src/com/gitblit/models/RegistrantAccessPermission.java
index 06f5c053..93027450 100644
--- a/src/com/gitblit/models/RepositoryAccessPermission.java
+++ b/src/com/gitblit/models/RegistrantAccessPermission.java
@@ -18,35 +18,43 @@ package com.gitblit.models;
import java.io.Serializable;
import com.gitblit.Constants.AccessPermission;
+import com.gitblit.Constants.RegistrantType;
import com.gitblit.utils.StringUtils;
/**
- * Represents a Repository-AccessPermission tuple.
+ * Represents a Registrant-AccessPermission tuple.
*
* @author James Moger
*/
-public class RepositoryAccessPermission implements Serializable, Comparable<RepositoryAccessPermission> {
+public class RegistrantAccessPermission implements Serializable, Comparable<RegistrantAccessPermission> {
private static final long serialVersionUID = 1L;
- public String repository;
+ public String registrant;
public AccessPermission permission;
+ public RegistrantType type;
- public RepositoryAccessPermission() {
+ public RegistrantAccessPermission() {
}
- public RepositoryAccessPermission(String repository, AccessPermission permission) {
- this.repository = repository;
+ public RegistrantAccessPermission(String registrant, AccessPermission permission, RegistrantType type) {
+ this.registrant = registrant;
this.permission = permission;
+ this.type = type;
}
@Override
- public int compareTo(RepositoryAccessPermission p) {
- return StringUtils.compareRepositoryNames(repository, p.repository);
+ public int compareTo(RegistrantAccessPermission p) {
+ switch (type) {
+ case REPOSITORY:
+ return StringUtils.compareRepositoryNames(registrant, p.registrant);
+ default:
+ return registrant.toLowerCase().compareTo(p.registrant.toLowerCase());
+ }
}
@Override
public String toString() {
- return permission.asRole(repository);
+ return permission.asRole(registrant);
}
} \ No newline at end of file
diff --git a/src/com/gitblit/models/TeamAccessPermission.java b/src/com/gitblit/models/TeamAccessPermission.java
deleted file mode 100644
index 23468c6d..00000000
--- a/src/com/gitblit/models/TeamAccessPermission.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2012 gitblit.com.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gitblit.models;
-
-import java.io.Serializable;
-
-import com.gitblit.Constants.AccessPermission;
-
-/**
- * Represents a Team-AccessPermission tuple.
- *
- * @author James Moger
- */
-public class TeamAccessPermission implements Serializable, Comparable<TeamAccessPermission> {
-
- private static final long serialVersionUID = 1L;
-
- public String team;
- public AccessPermission permission;
-
- public TeamAccessPermission() {
- }
-
- public TeamAccessPermission(String team, AccessPermission permission) {
- this.team = team;
- this.permission = permission;
- }
-
- @Override
- public int compareTo(TeamAccessPermission p) {
- return team.compareTo(p.team);
- }
-
- @Override
- public String toString() {
- return permission.asRole("@" + team);
- }
-} \ No newline at end of file
diff --git a/src/com/gitblit/models/TeamModel.java b/src/com/gitblit/models/TeamModel.java
index 95e6ef4e..4c3a8427 100644
--- a/src/com/gitblit/models/TeamModel.java
+++ b/src/com/gitblit/models/TeamModel.java
@@ -27,6 +27,7 @@ import java.util.Set;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.AccessRestrictionType;
+import com.gitblit.Constants.RegistrantType;
import com.gitblit.Constants.Unused;
/**
@@ -93,10 +94,10 @@ public class TeamModel implements Serializable, Comparable<TeamModel> {
*
* @return the team's list of permissions
*/
- public List<RepositoryAccessPermission> getRepositoryPermissions() {
- List<RepositoryAccessPermission> list = new ArrayList<RepositoryAccessPermission>();
+ public List<RegistrantAccessPermission> getRepositoryPermissions() {
+ List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>();
for (Map.Entry<String, AccessPermission> entry : permissions.entrySet()) {
- list.add(new RepositoryAccessPermission(entry.getKey(), entry.getValue()));
+ list.add(new RegistrantAccessPermission(entry.getKey(), entry.getValue(), RegistrantType.REPOSITORY));
}
Collections.sort(list);
return list;
diff --git a/src/com/gitblit/models/UserAccessPermission.java b/src/com/gitblit/models/UserAccessPermission.java
deleted file mode 100644
index a77fff29..00000000
--- a/src/com/gitblit/models/UserAccessPermission.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2012 gitblit.com.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.gitblit.models;
-
-import java.io.Serializable;
-
-import com.gitblit.Constants.AccessPermission;
-
-/**
- * Represents a User-AccessPermission tuple.
- *
- * @author James Moger
- */
-public class UserAccessPermission implements Serializable, Comparable<UserAccessPermission> {
-
- private static final long serialVersionUID = 1L;
-
- public String user;
- public AccessPermission permission;
-
- public UserAccessPermission() {
- }
-
- public UserAccessPermission(String user, AccessPermission permission) {
- this.user = user;
- this.permission = permission;
- }
-
- @Override
- public int compareTo(UserAccessPermission p) {
- return user.compareTo(p.user);
- }
-
- @Override
- public String toString() {
- return permission.asRole(user);
- }
-} \ No newline at end of file
diff --git a/src/com/gitblit/models/UserModel.java b/src/com/gitblit/models/UserModel.java
index 38a7aaed..fc9cbfba 100644
--- a/src/com/gitblit/models/UserModel.java
+++ b/src/com/gitblit/models/UserModel.java
@@ -28,6 +28,7 @@ import java.util.Set;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.Constants.AuthorizationControl;
+import com.gitblit.Constants.RegistrantType;
import com.gitblit.Constants.Unused;
import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.StringUtils;
@@ -133,10 +134,10 @@ public class UserModel implements Principal, Serializable, Comparable<UserModel>
*
* @return the user's list of permissions
*/
- public List<RepositoryAccessPermission> getRepositoryPermissions() {
- List<RepositoryAccessPermission> list = new ArrayList<RepositoryAccessPermission>();
+ public List<RegistrantAccessPermission> getRepositoryPermissions() {
+ List<RegistrantAccessPermission> list = new ArrayList<RegistrantAccessPermission>();
for (Map.Entry<String, AccessPermission> entry : permissions.entrySet()) {
- list.add(new RepositoryAccessPermission(entry.getKey(), entry.getValue()));
+ list.add(new RegistrantAccessPermission(entry.getKey(), entry.getValue(), RegistrantType.REPOSITORY));
}
Collections.sort(list);
return list;
@@ -208,10 +209,10 @@ public class UserModel implements Principal, Serializable, Comparable<UserModel>
// and the permissions of teams of which the user belongs
AccessPermission permission = AccessPermission.NONE;
if (permissions.containsKey(repository.name.toLowerCase())) {
- // exact repository permission specified
+ // exact repository permission specified, use it
AccessPermission p = permissions.get(repository.name.toLowerCase());
if (p != null) {
- permission = p;
+ return p;
}
} else {
// search for regex permission match