| | |
| | | /*
|
| | | * 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) {
|
| | |
| | | repositories.add(name.toLowerCase());
|
| | | }
|
| | |
|
| | | public List<String> getRepositories() {
|
| | | return repositories;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public String toString() {
|
| | | return username;
|
| | | }
|