// Copyright (C) 2008 The Android Open Source Project // // 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.google.gerrit.reviewdb; import com.google.gwtorm.client.Column; import com.google.gwtorm.client.StringKey; /** Global configuration needed to serve web requests. */ public final class SystemConfig { public static final class Key extends StringKey<com.google.gwtorm.client.Key<?>> { private static final long serialVersionUID = 1L; private static final String VALUE = "X"; @Column(id = 1, length = 1) protected String one = VALUE; public Key() { } @Override public String get() { return VALUE; } @Override protected void set(final String newValue) { assert get().equals(newValue); } } /** Construct a new, unconfigured instance. */ public static SystemConfig create() { final SystemConfig r = new SystemConfig(); r.singleton = new SystemConfig.Key(); return r; } @Column(id = 1) protected Key singleton; /** Private key to sign account identification cookies. */ @Column(id = 2, length = 36) public transient String registerEmailPrivateKey; /** * Local filesystem location of header/footer/CSS configuration files */ @Column(id = 3, notNull = false) public transient String sitePath; /** Identity of the administration group; those with full access. */ @Column(id = 4) public AccountGroup.Id adminGroupId; /** Identity of the anonymous group, which permits anyone. */ @Column(id = 5) public AccountGroup.Id anonymousGroupId; /** Identity of the registered users group, which permits anyone. */ @Column(id = 6) public AccountGroup.Id registeredGroupId; /** Identity of the project */ @Column(id = 7) public Project.NameKey wildProjectName; /** Identity of the batch users group */ @Column(id = 8) public AccountGroup.Id batchUsersGroupId; /** Identity of the owner group, which permits any project owner. */ @Column(id = 9) public AccountGroup.Id ownerGroupId; protected SystemConfig() { } }