use of org.eclipse.jgit.storage.file.FileBasedConfig in project gerrit by GerritCodeReview.
the class GerritServerConfigModule method getSecureStoreFromGerritConfig.
private static String getSecureStoreFromGerritConfig(Path sitePath) {
try {
SitePaths site = new SitePaths(sitePath);
FileBasedConfig cfg = new FileBasedConfig(site.gerrit_config.toFile(), FS.DETECTED);
if (!cfg.getFile().exists()) {
return DefaultSecureStore.class.getName();
}
cfg.load();
String className = cfg.getString("gerrit", null, "secureStoreClass");
return nullToDefault(className);
} catch (IOException | ConfigInvalidException e) {
throw new ProvisionException(e.getMessage(), e);
}
}
use of org.eclipse.jgit.storage.file.FileBasedConfig in project gerrit by GerritCodeReview.
the class FileBasedGlobalPluginConfigProvider method get.
@Override
public Config get(String pluginName) {
Path pluginConfigFile = site.etc_dir.resolve(pluginName + ".config");
FileBasedConfig cfg = new FileBasedConfig(pluginConfigFile.toFile(), FS.DETECTED);
if (!cfg.getFile().exists()) {
logger.atInfo().log("No %s; assuming defaults", pluginConfigFile.toAbsolutePath());
return cfg;
}
try {
cfg.load();
} catch (ConfigInvalidException e) {
// This is an error in user input, don't spam logs with a stack trace.
logger.atWarning().log("Failed to load %s: %s", pluginConfigFile.toAbsolutePath(), e.getMessage());
} catch (IOException e) {
logger.atWarning().withCause(e).log("Failed to load %s", pluginConfigFile.toAbsolutePath());
}
return cfg;
}
use of org.eclipse.jgit.storage.file.FileBasedConfig in project gerrit by GerritCodeReview.
the class AbstractReindexTests method updateConfig.
private void updateConfig(Consumer<Config> configConsumer) throws Exception {
FileBasedConfig cfg = new FileBasedConfig(sitePaths.gerrit_config.toFile(), FS.detect());
cfg.load();
configConsumer.accept(cfg);
cfg.save();
}
use of org.eclipse.jgit.storage.file.FileBasedConfig in project gitblit by gitblit.
the class ProjectManager method start.
@Override
public ProjectManager start() {
// load and cache the project metadata
projectConfigs = new FileBasedConfig(runtimeManager.getFileOrFolder(Keys.web.projectsFile, "${baseFolder}/projects.conf"), FS.detect());
getProjectConfigs();
return this;
}
use of org.eclipse.jgit.storage.file.FileBasedConfig in project gitblit by gitblit.
the class ConfigUserService method read.
/**
* Reads the realm file and rebuilds the in-memory lookup tables.
*/
protected synchronized void read() {
if (realmFile.exists() && (forceReload || (realmFile.lastModified() != lastModified))) {
forceReload = false;
lastModified = realmFile.lastModified();
users.clear();
cookies.clear();
teams.clear();
try {
StoredConfig config = new FileBasedConfig(realmFile, FS.detect());
config.load();
Set<String> usernames = config.getSubsections(USER);
for (String username : usernames) {
UserModel user = new UserModel(username.toLowerCase());
user.password = config.getString(USER, username, PASSWORD);
user.displayName = config.getString(USER, username, DISPLAYNAME);
user.emailAddress = config.getString(USER, username, EMAILADDRESS);
user.accountType = AccountType.fromString(config.getString(USER, username, ACCOUNTTYPE));
user.disabled = config.getBoolean(USER, username, DISABLED, false);
user.organizationalUnit = config.getString(USER, username, ORGANIZATIONALUNIT);
user.organization = config.getString(USER, username, ORGANIZATION);
user.locality = config.getString(USER, username, LOCALITY);
user.stateProvince = config.getString(USER, username, STATEPROVINCE);
user.countryCode = config.getString(USER, username, COUNTRYCODE);
user.cookie = config.getString(USER, username, COOKIE);
if (StringUtils.isEmpty(user.cookie) && !StringUtils.isEmpty(user.password)) {
user.cookie = user.createCookie();
}
// preferences
user.getPreferences().setLocale(config.getString(USER, username, LOCALE));
user.getPreferences().setEmailMeOnMyTicketChanges(config.getBoolean(USER, username, EMAILONMYTICKETCHANGES, true));
user.getPreferences().setTransport(Transport.fromString(config.getString(USER, username, TRANSPORT)));
// user roles
Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList(USER, username, ROLE)));
user.canAdmin = roles.contains(Role.ADMIN.getRole());
user.canFork = roles.contains(Role.FORK.getRole());
user.canCreate = roles.contains(Role.CREATE.getRole());
user.excludeFromFederation = roles.contains(Role.NOT_FEDERATED.getRole());
// repository memberships
if (!user.canAdmin) {
// non-admin, read permissions
Set<String> repositories = new HashSet<String>(Arrays.asList(config.getStringList(USER, username, REPOSITORY)));
for (String repository : repositories) {
user.addRepositoryPermission(repository);
}
}
// starred repositories
Set<String> starred = new HashSet<String>(Arrays.asList(config.getStringList(USER, username, STARRED)));
for (String repository : starred) {
UserRepositoryPreferences prefs = user.getPreferences().getRepositoryPreferences(repository);
prefs.starred = true;
}
// update cache
users.put(user.username, user);
if (!StringUtils.isEmpty(user.cookie)) {
cookies.put(user.cookie, user);
}
}
// load the teams
Set<String> teamnames = config.getSubsections(TEAM);
for (String teamname : teamnames) {
TeamModel team = new TeamModel(teamname);
Set<String> roles = new HashSet<String>(Arrays.asList(config.getStringList(TEAM, teamname, ROLE)));
team.canAdmin = roles.contains(Role.ADMIN.getRole());
team.canFork = roles.contains(Role.FORK.getRole());
team.canCreate = roles.contains(Role.CREATE.getRole());
team.accountType = AccountType.fromString(config.getString(TEAM, teamname, ACCOUNTTYPE));
if (!team.canAdmin) {
// non-admin team, read permissions
team.addRepositoryPermissions(Arrays.asList(config.getStringList(TEAM, teamname, REPOSITORY)));
}
team.addUsers(Arrays.asList(config.getStringList(TEAM, teamname, USER)));
team.addMailingLists(Arrays.asList(config.getStringList(TEAM, teamname, MAILINGLIST)));
team.preReceiveScripts.addAll(Arrays.asList(config.getStringList(TEAM, teamname, PRERECEIVE)));
team.postReceiveScripts.addAll(Arrays.asList(config.getStringList(TEAM, teamname, POSTRECEIVE)));
teams.put(team.name.toLowerCase(), team);
// set the teams on the users
for (String user : team.users) {
UserModel model = users.get(user);
if (model != null) {
model.teams.add(team);
}
}
}
} catch (Exception e) {
logger.error(MessageFormat.format("Failed to read {0}", realmFile), e);
}
}
}
Aggregations