summaryrefslogtreecommitdiffstats
path: root/src/com/gitblit/wicket/models/UserModel.java
diff options
context:
space:
mode:
authorJames Moger <james.moger@gitblit.com>2011-05-11 22:07:53 -0400
committerJames Moger <james.moger@gitblit.com>2011-05-11 22:07:53 -0400
commit511554c6bdd7daa080506fb62400bf6d295ab9e2 (patch)
treee380037512384c88ea8cb7c39a568964011dfc37 /src/com/gitblit/wicket/models/UserModel.java
parentdfb88962fdbd29f59abe92178bb042738d57c3e1 (diff)
downloadgitblit-511554c6bdd7daa080506fb62400bf6d295ab9e2.tar.gz
gitblit-511554c6bdd7daa080506fb62400bf6d295ab9e2.zip
Renamed User to UserModel.
Diffstat (limited to 'src/com/gitblit/wicket/models/UserModel.java')
-rw-r--r--src/com/gitblit/wicket/models/UserModel.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/com/gitblit/wicket/models/UserModel.java b/src/com/gitblit/wicket/models/UserModel.java
new file mode 100644
index 00000000..c65d3564
--- /dev/null
+++ b/src/com/gitblit/wicket/models/UserModel.java
@@ -0,0 +1,89 @@
+package com.gitblit.wicket.models;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.gitblit.Constants.AccessRestrictionType;
+
+public class UserModel implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String username;
+ private String password;
+ private String cookie;
+ private boolean canAdmin = false;
+ private List<String> repositories = new ArrayList<String>();
+
+ public UserModel(String username) {
+ this.username = username;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public void canAdmin(boolean value) {
+ canAdmin = value;
+ }
+
+ public boolean canAdmin() {
+ return canAdmin;
+ }
+
+ public boolean canClone(RepositoryModel repository) {
+ return canAccess(repository, AccessRestrictionType.CLONE);
+ }
+
+ public boolean canPush(RepositoryModel repository) {
+ return canAccess(repository, AccessRestrictionType.PUSH);
+ }
+
+ public boolean canView(RepositoryModel repository) {
+ return canAccess(repository, AccessRestrictionType.VIEW);
+ }
+
+ private boolean canAccess(RepositoryModel repository, AccessRestrictionType minimum) {
+ if (repository.accessRestriction.atLeast(minimum)) {
+ // repository is restricted, must check roles
+ return canAdmin || repositories.contains(repository.name);
+ } else {
+ // repository is not restricted
+ return true;
+ }
+ }
+
+ public void setCookie(String cookie) {
+ this.cookie = cookie;
+ }
+
+ public String getCookie() {
+ return cookie;
+ }
+
+ public void setRepositories(List<String> repositories) {
+ this.repositories.clear();
+ this.repositories.addAll(repositories);
+ }
+
+ public void addRepository(String name) {
+ repositories.add(name.toLowerCase());
+ }
+
+ public List<String> getRepositories() {
+ return repositories;
+ }
+
+ public String toString() {
+ return username;
+ }
+}