当前位置: 首页>>代码示例>>Java>>正文


Java PermissionRule.getGroup方法代码示例

本文整理汇总了Java中com.google.gerrit.common.data.PermissionRule.getGroup方法的典型用法代码示例。如果您正苦于以下问题:Java PermissionRule.getGroup方法的具体用法?Java PermissionRule.getGroup怎么用?Java PermissionRule.getGroup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.gerrit.common.data.PermissionRule的用法示例。


在下文中一共展示了PermissionRule.getGroup方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildGroupInfo

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
private Map<AccountGroup.UUID, GroupInfo> buildGroupInfo(List<AccessSection> local) {
  Map<AccountGroup.UUID, GroupInfo> infos = new HashMap<>();
  for (AccessSection section : local) {
    for (Permission permission : section.getPermissions()) {
      for (PermissionRule rule : permission.getRules()) {
        if (rule.getGroup() != null) {
          AccountGroup.UUID uuid = rule.getGroup().getUUID();
          if (uuid != null && !infos.containsKey(uuid)) {
            GroupDescription.Basic group = groupBackend.get(uuid);
            infos.put(uuid, group != null ? new GroupInfo(group) : null);
          }
        }
      }
    }
  }
  return Maps.filterEntries(infos, in -> in.getValue() != null);
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:18,代码来源:ProjectAccessFactory.java

示例2: lookupGroup

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
private void lookupGroup(PermissionRule rule) throws NoSuchGroupException {
  GroupReference ref = rule.getGroup();
  if (ref.getUUID() == null) {
    final GroupReference group = GroupBackends.findBestSuggestion(groupBackend, ref.getName());
    if (group == null) {
      throw new NoSuchGroupException(ref.getName());
    }
    ref.setUUID(group.getUUID());
  }
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:11,代码来源:ProjectAccessHandler.java

示例3: create

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
static SeenRule create(
    AccessSection section, Permission permission, @Nullable PermissionRule rule) {
  AccountGroup.UUID group =
      rule != null && rule.getGroup() != null ? rule.getGroup().getUUID() : null;
  return new AutoValue_PermissionCollection_SeenRule(
      section.getName(), permission.getName(), group);
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:8,代码来源:PermissionCollection.java

示例4: check

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
/**
 * Checks if the user has signed a contributor agreement for the project.
 *
 * @throws AuthException if the user has not signed a contributor agreement for the project
 * @throws IOException if project states could not be loaded
 */
public void check(Project.NameKey project, CurrentUser user) throws IOException, AuthException {
  metrics.claCheckCount.increment();

  ProjectState projectState = projectCache.checkedGet(project);
  if (projectState == null) {
    throw new IOException("Can't load All-Projects");
  }

  if (!projectState.isUseContributorAgreements()) {
    return;
  }

  if (!user.isIdentifiedUser()) {
    throw new AuthException("Must be logged in to verify Contributor Agreement");
  }

  IdentifiedUser iUser = user.asIdentifiedUser();
  Collection<ContributorAgreement> contributorAgreements =
      projectCache.getAllProjects().getConfig().getContributorAgreements();
  List<UUID> okGroupIds = new ArrayList<>();
  for (ContributorAgreement ca : contributorAgreements) {
    List<AccountGroup.UUID> groupIds;
    groupIds = okGroupIds;

    for (PermissionRule rule : ca.getAccepted()) {
      if ((rule.getAction() == Action.ALLOW)
          && (rule.getGroup() != null)
          && (rule.getGroup().getUUID() != null)) {
        groupIds.add(new AccountGroup.UUID(rule.getGroup().getUUID().get()));
      }
    }
  }

  if (!iUser.getEffectiveGroups().containsAnyOf(okGroupIds)) {
    final StringBuilder msg = new StringBuilder();
    msg.append("A Contributor Agreement must be completed before uploading");
    if (canonicalWebUrl != null) {
      msg.append(":\n\n  ");
      msg.append(canonicalWebUrl);
      msg.append("#");
      msg.append(PageLinks.SETTINGS_AGREEMENTS);
      msg.append("\n");
    } else {
      msg.append(".");
    }
    throw new AuthException(msg.toString());
  }
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:55,代码来源:ContributorAgreementsChecker.java

示例5: ProjectState

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
@Inject
public ProjectState(
    final SitePaths sitePaths,
    final ProjectCache projectCache,
    final AllProjectsName allProjectsName,
    final AllUsersName allUsersName,
    final ProjectControl.AssistedFactory projectControlFactory,
    final PrologEnvironment.Factory envFactory,
    final GitRepositoryManager gitMgr,
    final RulesCache rulesCache,
    final List<CommentLinkInfo> commentLinks,
    final CapabilityCollection.Factory limitsFactory,
    @Assisted final ProjectConfig config) {
  this.sitePaths = sitePaths;
  this.projectCache = projectCache;
  this.isAllProjects = config.getProject().getNameKey().equals(allProjectsName);
  this.isAllUsers = config.getProject().getNameKey().equals(allUsersName);
  this.allProjectsName = allProjectsName;
  this.projectControlFactory = projectControlFactory;
  this.envFactory = envFactory;
  this.gitMgr = gitMgr;
  this.rulesCache = rulesCache;
  this.commentLinks = commentLinks;
  this.config = config;
  this.configs = new HashMap<>();
  this.capabilities =
      isAllProjects
          ? limitsFactory.create(config.getAccessSection(AccessSection.GLOBAL_CAPABILITIES))
          : null;

  if (isAllProjects && !Permission.canBeOnAllProjects(AccessSection.ALL, Permission.OWNER)) {
    localOwners = Collections.emptySet();
  } else {
    HashSet<AccountGroup.UUID> groups = new HashSet<>();
    AccessSection all = config.getAccessSection(AccessSection.ALL);
    if (all != null) {
      Permission owner = all.getPermission(Permission.OWNER);
      if (owner != null) {
        for (PermissionRule rule : owner.getRules()) {
          GroupReference ref = rule.getGroup();
          if (rule.getAction() == ALLOW && ref.getUUID() != null) {
            groups.add(ref.getUUID());
          }
        }
      }
    }
    localOwners = Collections.unmodifiableSet(groups);
  }
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:50,代码来源:ProjectState.java

示例6: loadPermissionRules

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
private void loadPermissionRules(
    Config rc,
    String section,
    String subsection,
    String varName,
    Map<String, GroupReference> groupsByName,
    Permission perm,
    boolean useRange) {
  for (String ruleString : rc.getStringList(section, subsection, varName)) {
    PermissionRule rule;
    try {
      rule = PermissionRule.fromString(ruleString, useRange);
    } catch (IllegalArgumentException notRule) {
      error(
          new ValidationError(
              PROJECT_CONFIG,
              "Invalid rule in "
                  + section
                  + (subsection != null ? "." + subsection : "")
                  + "."
                  + varName
                  + ": "
                  + notRule.getMessage()));
      continue;
    }

    GroupReference ref = groupsByName.get(rule.getGroup().getName());
    if (ref == null) {
      // The group wasn't mentioned in the groups table, so there is
      // no valid UUID for it. Pool the reference anyway so at least
      // all rules in the same file share the same GroupReference.
      //
      ref = rule.getGroup();
      groupsByName.put(ref.getName(), ref);
      error(
          new ValidationError(
              PROJECT_CONFIG, "group \"" + ref.getName() + "\" not in " + GroupList.FILE_NAME));
    }

    rule.setGroup(ref);
    perm.add(rule);
  }
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:44,代码来源:ProjectConfig.java

示例7: apply

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
@Override
public List<AgreementInfo> apply(AccountResource resource) throws RestApiException {
  if (!agreementsEnabled) {
    throw new MethodNotAllowedException("contributor agreements disabled");
  }

  if (!self.get().isIdentifiedUser()) {
    throw new AuthException("not allowed to get contributor agreements");
  }

  IdentifiedUser user = self.get().asIdentifiedUser();
  if (user != resource.getUser()) {
    throw new AuthException("not allowed to get contributor agreements");
  }

  List<AgreementInfo> results = new ArrayList<>();
  Collection<ContributorAgreement> cas =
      projectCache.getAllProjects().getConfig().getContributorAgreements();
  for (ContributorAgreement ca : cas) {
    List<AccountGroup.UUID> groupIds = new ArrayList<>();
    for (PermissionRule rule : ca.getAccepted()) {
      if ((rule.getAction() == Action.ALLOW) && (rule.getGroup() != null)) {
        if (rule.getGroup().getUUID() != null) {
          groupIds.add(rule.getGroup().getUUID());
        } else {
          log.warn(
              "group \""
                  + rule.getGroup().getName()
                  + "\" does not "
                  + "exist, referenced in CLA \""
                  + ca.getName()
                  + "\"");
        }
      }
    }

    if (user.getEffectiveGroups().containsAnyOf(groupIds)) {
      results.add(agreementJson.format(ca));
    }
  }
  return results;
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:43,代码来源:GetAgreements.java

示例8: setValue

import com.google.gerrit.common.data.PermissionRule; //导入方法依赖的package包/类
@Override
public void setValue(PermissionRule value) {
  if (clickHandler != null) {
    clickHandler.removeHandler();
    clickHandler = null;
  }

  GroupReference ref = value.getGroup();
  GroupInfo info =
      groupInfo != null && ref.getUUID() != null ? groupInfo.get(ref.getUUID()) : null;

  boolean link;
  if (ref.getUUID() != null && AccountGroup.isInternalGroup(ref.getUUID())) {
    final String token = Dispatcher.toGroup(ref.getUUID());
    groupNameLink.setText(ref.getName());
    groupNameLink.setHref("#" + token);
    groupNameLink.setTitle(info != null ? info.getDescription() : null);
    groupNameLink.setTarget(null);
    clickHandler =
        groupNameLink.addClickHandler(
            new ClickHandler() {
              @Override
              public void onClick(ClickEvent event) {
                event.preventDefault();
                event.stopPropagation();
                Gerrit.display(token);
              }
            });
    link = true;
  } else if (info != null && info.getUrl() != null) {
    groupNameLink.setText(ref.getName());
    groupNameLink.setHref(info.getUrl());
    groupNameLink.setTitle(info.getDescription());
    groupNameLink.setTarget("_blank");
    link = true;
  } else {
    groupNameSpan.setInnerText(ref.getName());
    groupNameSpan.setTitle(ref.getUUID() != null ? ref.getUUID().get() : "");
    link = false;
  }

  deletedGroupName.setInnerText(ref.getName());
  groupNameLink.setVisible(link);
  UIObject.setVisible(groupNameSpan, !link);
}
 
开发者ID:gerrit-review,项目名称:gerrit,代码行数:46,代码来源:PermissionRuleEditor.java


注:本文中的com.google.gerrit.common.data.PermissionRule.getGroup方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。