From fe326255202dcfac8b0991ca9d28e3cf4bcc4fe6 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Sun, 23 Oct 2011 12:28:48 -0400 Subject: [PATCH] Per-repository setting to skip summary metrics --- src/com/gitblit/client/GitblitClient.java | 61 ++++++++++++++++++++++++------ 1 files changed, 48 insertions(+), 13 deletions(-) diff --git a/src/com/gitblit/client/GitblitModel.java b/src/com/gitblit/client/GitblitClient.java similarity index 77% rename from src/com/gitblit/client/GitblitModel.java rename to src/com/gitblit/client/GitblitClient.java index 92b0b1c..66675b1 100644 --- a/src/com/gitblit/client/GitblitModel.java +++ b/src/com/gitblit/client/GitblitClient.java @@ -23,14 +23,23 @@ import java.util.Map; import com.gitblit.GitBlitException.ForbiddenException; -import com.gitblit.IStoredSettings; +import com.gitblit.GitBlitException.UnauthorizedException; 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; @@ -39,10 +48,12 @@ public final String account; private final char[] password; + + private volatile boolean allowManagement; - private volatile boolean isAdmin; + private volatile boolean allowAdministration; - private volatile IStoredSettings settings; + private volatile ServerSettings settings; private final List<RepositoryModel> allRepositories; @@ -50,7 +61,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 +77,48 @@ refreshRepositories(); try { - settings = RpcUtils.getSettings(url, account, password); refreshUsers(); - refreshFederationRegistrations(); - isAdmin = true; + allowManagement = true; + } catch (UnauthorizedException e) { } catch (ForbiddenException e) { } catch (IOException e) { System.err.println(e.getMessage()); } + + try { + settings = RpcUtils.getSettings(url, account, password); + status = RpcUtils.getStatus(url, account, password); + allowAdministration = true; + } catch (UnauthorizedException e) { + } catch (ForbiddenException e) { + } catch (IOException e) { + System.err.println(e.getMessage()); + } + } - 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 { @@ -133,7 +168,7 @@ } public List<String> getFederationSets() { - return settings.getStrings(Keys.federation.sets); + return settings.get(Keys.federation.sets).getStrings(); } public List<RepositoryModel> getRepositories() { -- Gitblit v1.9.1