From a70b43cde76b4baab82b4ce0d9ff82883f80b8df Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Wed, 26 Oct 2011 17:54:07 -0400 Subject: [PATCH] Added status icon --- src/com/gitblit/client/GitblitClient.java | 83 ++++++++++++++++++++++++++++++++++------- 1 files changed, 69 insertions(+), 14 deletions(-) diff --git a/src/com/gitblit/client/GitblitModel.java b/src/com/gitblit/client/GitblitClient.java similarity index 69% rename from src/com/gitblit/client/GitblitModel.java rename to src/com/gitblit/client/GitblitClient.java index 92b0b1c..9f4dd3e 100644 --- a/src/com/gitblit/client/GitblitModel.java +++ b/src/com/gitblit/client/GitblitClient.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); + } } -- Gitblit v1.9.1