James Moger
2011-10-26 a70b43cde76b4baab82b4ce0d9ff82883f80b8df
src/com/gitblit/client/GitblitClient.java
File was renamed from src/com/gitblit/client/GitblitModel.java
@@ -23,14 +23,25 @@
import java.util.Map;
import com.gitblit.GitBlitException.ForbiddenException;
import com.gitblit.IStoredSettings;
import com.gitblit.GitBlitException.NotAllowedException;
import com.gitblit.GitBlitException.UnauthorizedException;
import com.gitblit.GitBlitException.UnknownRequestException;
import com.gitblit.Keys;
import com.gitblit.models.FederationModel;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.ServerSettings;
import com.gitblit.models.ServerStatus;
import com.gitblit.models.UserModel;
import com.gitblit.utils.RpcUtils;
public class GitblitModel implements Serializable {
/**
 * GitblitClient is a object that retrieves data from a Gitblit server, caches
 * it for local operations, and allows updating or creating Gitblit objects.
 *
 * @author James Moger
 *
 */
public class GitblitClient implements Serializable {
   private static final long serialVersionUID = 1L;
@@ -40,9 +51,11 @@
   private final char[] password;
   private volatile boolean isAdmin;
   private volatile boolean allowManagement;
   private volatile IStoredSettings settings;
   private volatile boolean allowAdministration;
   private volatile ServerSettings settings;
   private final List<RepositoryModel> allRepositories;
@@ -50,7 +63,9 @@
   private final List<FederationModel> federationRegistrations;
   public GitblitModel(String url, String account, char[] password) {
   private ServerStatus status;
   public GitblitClient(String url, String account, char[] password) {
      this.url = url;
      this.account = account;
      this.password = password;
@@ -64,26 +79,52 @@
      refreshRepositories();
      try {
         settings = RpcUtils.getSettings(url, account, password);
         refreshUsers();
         refreshFederationRegistrations();
         isAdmin = true;
         refreshSettings();
         allowManagement = true;
      } catch (UnauthorizedException e) {
      } catch (ForbiddenException e) {
      } catch (NotAllowedException e) {
      } catch (UnknownRequestException e) {
      } catch (IOException e) {
         System.err.println(e.getMessage());
         e.printStackTrace();
      }
      try {
         refreshStatus();
         allowAdministration = true;
      } catch (UnauthorizedException e) {
      } catch (ForbiddenException e) {
      } catch (NotAllowedException e) {
      } catch (UnknownRequestException e) {
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
   public boolean allowAdmin() {
      return isAdmin;
   public boolean allowManagement() {
      return allowManagement;
   }
   public boolean allowAdministration() {
      return allowAdministration;
   }
   public boolean isOwner(RepositoryModel model) {
      return account.equalsIgnoreCase(model.owner);
      return account != null && account.equalsIgnoreCase(model.owner);
   }
   public IStoredSettings getSettings() {
   public ServerSettings getSettings() {
      return settings;
   }
   public ServerStatus getStatus() {
      return status;
   }
   public String getSettingDescription(String key) {
      return settings.get(key).description;
   }
   public List<RepositoryModel> refreshRepositories() throws IOException {
@@ -100,6 +141,16 @@
      allUsers.clear();
      allUsers.addAll(users);
      return allUsers;
   }
   public ServerSettings refreshSettings() throws IOException {
      settings = RpcUtils.getSettings(url, account, password);
      return settings;
   }
   public ServerStatus refreshStatus() throws IOException {
      status = RpcUtils.getStatus(url, account, password);
      return status;
   }
   public List<FederationModel> refreshFederationRegistrations() throws IOException {
@@ -133,7 +184,7 @@
   }
   public List<String> getFederationSets() {
      return settings.getStrings(Keys.federation.sets);
      return settings.get(Keys.federation.sets).getStrings();
   }
   public List<RepositoryModel> getRepositories() {
@@ -177,4 +228,8 @@
   public boolean deleteUser(UserModel user) throws IOException {
      return RpcUtils.deleteUser(user, url, account, password);
   }
   public boolean updateSettings(Map<String, String> newSettings) throws IOException {
      return RpcUtils.updateSettings(newSettings, url, account, password);
   }
}