diff options
author | James Moger <james.moger@gitblit.com> | 2011-05-11 22:07:53 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2011-05-11 22:07:53 -0400 |
commit | 511554c6bdd7daa080506fb62400bf6d295ab9e2 (patch) | |
tree | e380037512384c88ea8cb7c39a568964011dfc37 /src/com/gitblit/wicket/models/UserModel.java | |
parent | dfb88962fdbd29f59abe92178bb042738d57c3e1 (diff) | |
download | gitblit-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.java | 89 |
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;
+ }
+}
|