summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java107
1 files changed, 0 insertions, 107 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java
deleted file mode 100644
index 67d11a8e50..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/ProjectConfigSchemaUpdate.java
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright (C) 2016 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.server.schema;
-
-import static com.google.gerrit.server.git.ProjectConfig.ACCESS;
-import static java.util.stream.Collectors.toList;
-
-import com.google.gerrit.common.data.PermissionRule;
-import com.google.gerrit.reviewdb.client.RefNames;
-import com.google.gerrit.server.git.MetaDataUpdate;
-import com.google.gerrit.server.git.ProjectConfig;
-import com.google.gerrit.server.git.VersionedMetaData;
-import com.google.gwtorm.server.OrmException;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-import org.eclipse.jgit.errors.ConfigInvalidException;
-import org.eclipse.jgit.lib.CommitBuilder;
-import org.eclipse.jgit.lib.Config;
-import org.eclipse.jgit.lib.PersonIdent;
-
-public class ProjectConfigSchemaUpdate extends VersionedMetaData {
-
- private final MetaDataUpdate update;
- private Config config;
- private boolean updated;
-
- public static ProjectConfigSchemaUpdate read(MetaDataUpdate update)
- throws IOException, ConfigInvalidException {
- ProjectConfigSchemaUpdate r = new ProjectConfigSchemaUpdate(update);
- r.load(update);
- return r;
- }
-
- private ProjectConfigSchemaUpdate(MetaDataUpdate update) {
- this.update = update;
- }
-
- @Override
- protected String getRefName() {
- return RefNames.REFS_CONFIG;
- }
-
- @Override
- protected void onLoad() throws IOException, ConfigInvalidException {
- config = readConfig(ProjectConfig.PROJECT_CONFIG);
- }
-
- public void removeForceFromPermission(String name) {
- for (String subsection : config.getSubsections(ACCESS)) {
- Set<String> names = config.getNames(ACCESS, subsection);
- if (names.contains(name)) {
- List<String> values =
- Arrays.stream(config.getStringList(ACCESS, subsection, name))
- .map(
- r -> {
- PermissionRule rule = PermissionRule.fromString(r, false);
- if (rule.getForce()) {
- rule.setForce(false);
- updated = true;
- }
- return rule.asString(false);
- })
- .collect(toList());
- config.setStringList(ACCESS, subsection, name, values);
- }
- }
- }
-
- @Override
- protected boolean onSave(CommitBuilder commit) throws IOException, ConfigInvalidException {
- saveConfig(ProjectConfig.PROJECT_CONFIG, config);
- return true;
- }
-
- public void save(PersonIdent personIdent, String commitMessage) throws OrmException {
- if (!updated) {
- return;
- }
-
- update.getCommitBuilder().setAuthor(personIdent);
- update.getCommitBuilder().setCommitter(personIdent);
- update.setMessage(commitMessage);
- try {
- commit(update);
- } catch (IOException e) {
- throw new OrmException(e);
- }
- }
-
- public boolean isUpdated() {
- return updated;
- }
-}