James Moger
2011-05-26 17c417dad5c7be28df4b6e1fd25ec56b484faaff
src/com/gitblit/wicket/models/UserModel.java
@@ -1,73 +1,40 @@
/*
 * Copyright 2011 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.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>();
   // field names are reflectively mapped in EditUser page
   public String username;
   public String password;
   public boolean canAdmin;
   public final 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 boolean canAccessRepository(String repositoryName) {
      return canAdmin || repositories.contains(repositoryName);
   }
   public void setRepositories(List<String> repositories) {
@@ -79,10 +46,7 @@
      repositories.add(name.toLowerCase());
   }
   public List<String> getRepositories() {
      return repositories;
   }
   @Override
   public String toString() {
      return username;
   }