Search in sources :

Example 56 with CurrentUser

use of com.google.gerrit.server.CurrentUser in project gerrit by GerritCodeReview.

the class ChangeJson method toChangeInfoImpl.

private ChangeInfo toChangeInfoImpl(ChangeData cd, Optional<PatchSet.Id> limitToPsId, List<PluginDefinedInfo> pluginInfos) throws PatchListNotAvailableException, GpgException, PermissionBackendException, IOException {
    ChangeInfo out = new ChangeInfo();
    CurrentUser user = userProvider.get();
    if (has(CHECK)) {
        out.problems = checkerProvider.get().check(cd.notes(), fix).problems();
        // If any problems were fixed, the ChangeData needs to be reloaded.
        for (ProblemInfo p : out.problems) {
            if (p.status == ProblemInfo.Status.FIXED) {
                cd = changeDataFactory.create(cd.project(), cd.getId());
                break;
            }
        }
    }
    Change in = cd.change();
    out.project = in.getProject().get();
    out.branch = in.getDest().shortName();
    out.topic = in.getTopic();
    if (!cd.attentionSet().isEmpty()) {
        out.removedFromAttentionSet = removalsOnly(cd.attentionSet()).stream().collect(toImmutableMap(a -> a.account().get(), a -> AttentionSetUtil.createAttentionSetInfo(a, accountLoader)));
        out.attentionSet = // This filtering should match GetAttentionSet.
        additionsOnly(cd.attentionSet()).stream().collect(toImmutableMap(a -> a.account().get(), a -> AttentionSetUtil.createAttentionSetInfo(a, accountLoader)));
    }
    out.assignee = in.getAssignee() != null ? accountLoader.get(in.getAssignee()) : null;
    out.hashtags = cd.hashtags();
    out.changeId = in.getKey().get();
    if (in.isNew()) {
        SubmitTypeRecord str = cd.submitTypeRecord();
        if (str.isOk()) {
            out.submitType = str.type;
        }
        if (includeMergeable) {
            out.mergeable = cd.isMergeable();
        }
        if (has(SUBMITTABLE)) {
            out.submittable = submittable(cd);
        }
    }
    if (!has(SKIP_DIFFSTAT)) {
        Optional<ChangedLines> changedLines = cd.changedLines();
        if (changedLines.isPresent()) {
            out.insertions = changedLines.get().insertions;
            out.deletions = changedLines.get().deletions;
        }
    }
    out.isPrivate = in.isPrivate() ? true : null;
    out.workInProgress = in.isWorkInProgress() ? true : null;
    out.hasReviewStarted = in.hasReviewStarted();
    out.subject = in.getSubject();
    out.status = in.getStatus().asChangeStatus();
    out.owner = accountLoader.get(in.getOwner());
    out.setCreated(in.getCreatedOn());
    out.setUpdated(in.getLastUpdatedOn());
    out._number = in.getId().get();
    out.totalCommentCount = cd.totalCommentCount();
    out.unresolvedCommentCount = cd.unresolvedCommentCount();
    if (cd.getRefStates() != null) {
        String metaName = RefNames.changeMetaRef(cd.getId());
        Optional<RefState> metaState = cd.getRefStates().values().stream().filter(r -> r.ref().equals(metaName)).findAny();
        // metaState should always be there, but it doesn't hurt to be extra careful.
        metaState.ifPresent(rs -> out.metaRevId = rs.id().getName());
    }
    if (user.isIdentifiedUser()) {
        Collection<String> stars = cd.stars(user.getAccountId());
        out.starred = stars.contains(StarredChangesUtil.DEFAULT_LABEL) ? true : null;
        if (!stars.isEmpty()) {
            out.stars = stars;
        }
    }
    if (in.isNew() && has(REVIEWED) && user.isIdentifiedUser()) {
        out.reviewed = cd.isReviewedBy(user.getAccountId()) ? true : null;
    }
    out.labels = labelsJson.labelsFor(accountLoader, cd, has(LABELS), has(DETAILED_LABELS));
    out.requirements = requirementsFor(cd);
    out.submitRecords = submitRecordsFor(cd);
    if (has(SUBMIT_REQUIREMENTS)) {
        out.submitRequirements = submitRequirementsFor(cd);
    }
    if (out.labels != null && has(DETAILED_LABELS)) {
        // list permitted labels, since users can't vote on those patch sets.
        if (user.isIdentifiedUser() && (!limitToPsId.isPresent() || limitToPsId.get().equals(in.currentPatchSetId()))) {
            out.permittedLabels = !cd.change().isAbandoned() ? labelsJson.permittedLabels(user.getAccountId(), cd) : ImmutableMap.of();
        }
    }
    if (has(LABELS) || has(DETAILED_LABELS)) {
        out.reviewers = reviewerMap(cd.reviewers(), cd.reviewersByEmail(), false);
        out.pendingReviewers = reviewerMap(cd.pendingReviewers(), cd.pendingReviewersByEmail(), true);
        out.removableReviewers = removableReviewers(cd, out);
    }
    setSubmitter(cd, out);
    if (!pluginInfos.isEmpty()) {
        out.plugins = pluginInfos;
    }
    out.revertOf = cd.change().getRevertOf() != null ? cd.change().getRevertOf().get() : null;
    out.submissionId = cd.change().getSubmissionId();
    out.cherryPickOfChange = cd.change().getCherryPickOf() != null ? cd.change().getCherryPickOf().changeId().get() : null;
    out.cherryPickOfPatchSet = cd.change().getCherryPickOf() != null ? cd.change().getCherryPickOf().get() : null;
    if (has(REVIEWER_UPDATES)) {
        out.reviewerUpdates = reviewerUpdates(cd);
    }
    boolean needMessages = has(MESSAGES);
    boolean needRevisions = has(ALL_REVISIONS) || has(CURRENT_REVISION) || limitToPsId.isPresent();
    Map<PatchSet.Id, PatchSet> src;
    if (needMessages || needRevisions) {
        src = loadPatchSets(cd, limitToPsId);
    } else {
        src = null;
    }
    if (needMessages) {
        out.messages = messages(cd);
    }
    finish(out);
    // it will be passed to ActionVisitors as-is.
    if (needRevisions) {
        out.revisions = revisionJson.getRevisions(accountLoader, cd, src, limitToPsId, out);
        if (out.revisions != null) {
            for (Map.Entry<String, RevisionInfo> entry : out.revisions.entrySet()) {
                if (entry.getValue().isCurrent) {
                    out.currentRevision = entry.getKey();
                    break;
                }
            }
        }
    }
    if (has(CURRENT_ACTIONS) || has(CHANGE_ACTIONS)) {
        actionJson.addChangeActions(out, cd);
    }
    if (has(TRACKING_IDS)) {
        ListMultimap<String, String> set = trackingFooters.extract(cd.commitFooters());
        out.trackingIds = set.entries().stream().map(e -> new TrackingIdInfo(e.getKey(), e.getValue())).collect(toList());
    }
    return out;
}
Also used : AttentionSetUtil.additionsOnly(com.google.gerrit.server.util.AttentionSetUtil.additionsOnly) REVIEWER_UPDATES(com.google.gerrit.extensions.client.ListChangesOption.REVIEWER_UPDATES) LabelInfo(com.google.gerrit.extensions.common.LabelInfo) ListMultimap(com.google.common.collect.ListMultimap) TrackingIdInfo(com.google.gerrit.extensions.common.TrackingIdInfo) PermissionBackend(com.google.gerrit.server.permissions.PermissionBackend) ReviewerSet(com.google.gerrit.server.ReviewerSet) SubmitRequirementResult(com.google.gerrit.entities.SubmitRequirementResult) Config(org.eclipse.jgit.lib.Config) Map(java.util.Map) LABELS(com.google.gerrit.extensions.client.ListChangesOption.LABELS) AttentionSetUtil.removalsOnly(com.google.gerrit.server.util.AttentionSetUtil.removalsOnly) ApprovalInfo(com.google.gerrit.extensions.common.ApprovalInfo) GerritServerConfig(com.google.gerrit.server.config.GerritServerConfig) Timer0(com.google.gerrit.metrics.Timer0) Set(java.util.Set) ReviewerStatusUpdate(com.google.gerrit.server.ReviewerStatusUpdate) SubmitRecord(com.google.gerrit.entities.SubmitRecord) SUBMITTABLE(com.google.gerrit.extensions.client.ListChangesOption.SUBMITTABLE) SubmitTypeRecord(com.google.gerrit.entities.SubmitTypeRecord) ImmutableMap.toImmutableMap(com.google.common.collect.ImmutableMap.toImmutableMap) MESSAGES(com.google.gerrit.extensions.client.ListChangesOption.MESSAGES) ImmutableListMultimap(com.google.common.collect.ImmutableListMultimap) DETAILED_ACCOUNTS(com.google.gerrit.extensions.client.ListChangesOption.DETAILED_ACCOUNTS) MetricMaker(com.google.gerrit.metrics.MetricMaker) FluentLogger(com.google.common.flogger.FluentLogger) Joiner(com.google.common.base.Joiner) ChangeMessagesUtil(com.google.gerrit.server.ChangeMessagesUtil) Singleton(com.google.inject.Singleton) PermissionBackendException(com.google.gerrit.server.permissions.PermissionBackendException) ArrayList(java.util.ArrayList) CURRENT_COMMIT(com.google.gerrit.extensions.client.ListChangesOption.CURRENT_COMMIT) ChangeMessage(com.google.gerrit.entities.ChangeMessage) Lists(com.google.common.collect.Lists) Description(com.google.gerrit.metrics.Description) PatchSet(com.google.gerrit.entities.PatchSet) Address(com.google.gerrit.entities.Address) RefState(com.google.gerrit.index.RefState) CURRENT_ACTIONS(com.google.gerrit.extensions.client.ListChangesOption.CURRENT_ACTIONS) StorageException(com.google.gerrit.exceptions.StorageException) Units(com.google.gerrit.metrics.Description.Units) MoreObjects(com.google.common.base.MoreObjects) Throwables(com.google.common.base.Throwables) ChangeNotes(com.google.gerrit.server.notedb.ChangeNotes) IOException(java.io.IOException) ReviewerUpdateInfo(com.google.gerrit.extensions.common.ReviewerUpdateInfo) SubmitRuleOptions(com.google.gerrit.server.project.SubmitRuleOptions) LegacySubmitRequirementInfo(com.google.gerrit.extensions.common.LegacySubmitRequirementInfo) Project(com.google.gerrit.entities.Project) TrackingFooters(com.google.gerrit.server.config.TrackingFooters) ReviewerByEmailSet(com.google.gerrit.server.ReviewerByEmailSet) RequestCancelledException(com.google.gerrit.server.cancellation.RequestCancelledException) ALL_REVISIONS(com.google.gerrit.extensions.client.ListChangesOption.ALL_REVISIONS) Inject(com.google.inject.Inject) RevisionInfo(com.google.gerrit.extensions.common.RevisionInfo) Assisted(com.google.inject.assistedinject.Assisted) PatchSetApproval(com.google.gerrit.entities.PatchSetApproval) LegacySubmitRequirement(com.google.gerrit.entities.LegacySubmitRequirement) RemoveReviewerControl(com.google.gerrit.server.project.RemoveReviewerControl) AccountInfo(com.google.gerrit.extensions.common.AccountInfo) GpgException(com.google.gerrit.server.GpgException) REVIEWED(com.google.gerrit.extensions.client.ListChangesOption.REVIEWED) RefNames(com.google.gerrit.entities.RefNames) SubmitRequirementResultInfo(com.google.gerrit.extensions.common.SubmitRequirementResultInfo) CHECK(com.google.gerrit.extensions.client.ListChangesOption.CHECK) ChangedLines(com.google.gerrit.server.query.change.ChangeData.ChangedLines) ImmutableSet(com.google.common.collect.ImmutableSet) ImmutableMap(com.google.common.collect.ImmutableMap) Collection(java.util.Collection) DETAILED_LABELS(com.google.gerrit.extensions.client.ListChangesOption.DETAILED_LABELS) Account(com.google.gerrit.entities.Account) Collectors(java.util.stream.Collectors) Sets(com.google.common.collect.Sets) ChangeData(com.google.gerrit.server.query.change.ChangeData) List(java.util.List) Nullable(com.google.gerrit.common.Nullable) Url(com.google.gerrit.extensions.restapi.Url) Optional(java.util.Optional) AttentionSetUtil(com.google.gerrit.server.util.AttentionSetUtil) PatchListNotAvailableException(com.google.gerrit.server.patch.PatchListNotAvailableException) AccountLoader(com.google.gerrit.server.account.AccountLoader) FixInput(com.google.gerrit.extensions.api.changes.FixInput) ChangePermission(com.google.gerrit.server.permissions.ChangePermission) ReviewerState(com.google.gerrit.extensions.client.ReviewerState) HashMap(java.util.HashMap) HashSet(java.util.HashSet) ImmutableList(com.google.common.collect.ImmutableList) CURRENT_REVISION(com.google.gerrit.extensions.client.ListChangesOption.CURRENT_REVISION) ChangeInfo(com.google.gerrit.extensions.common.ChangeInfo) SubmitRecordInfo(com.google.gerrit.extensions.common.SubmitRecordInfo) SKIP_DIFFSTAT(com.google.gerrit.extensions.client.ListChangesOption.SKIP_DIFFSTAT) ChangeMessagesUtil.createChangeMessageInfo(com.google.gerrit.server.ChangeMessagesUtil.createChangeMessageInfo) Change(com.google.gerrit.entities.Change) ListChangesOption(com.google.gerrit.extensions.client.ListChangesOption) PluginDefinedInfo(com.google.gerrit.extensions.common.PluginDefinedInfo) TRACKING_IDS(com.google.gerrit.extensions.client.ListChangesOption.TRACKING_IDS) ProblemInfo(com.google.gerrit.extensions.common.ProblemInfo) CurrentUser(com.google.gerrit.server.CurrentUser) QueryResult(com.google.gerrit.index.query.QueryResult) Status(com.google.gerrit.entities.SubmitRecord.Status) ReviewerStateInternal(com.google.gerrit.server.notedb.ReviewerStateInternal) AccountInfoComparator(com.google.gerrit.server.account.AccountInfoComparator) ChangeMessageInfo(com.google.gerrit.extensions.common.ChangeMessageInfo) CHANGE_ACTIONS(com.google.gerrit.extensions.client.ListChangesOption.CHANGE_ACTIONS) Maps(com.google.common.collect.Maps) ObjectId(org.eclipse.jgit.lib.ObjectId) ChangeField(com.google.gerrit.server.index.change.ChangeField) Collectors.toList(java.util.stream.Collectors.toList) Provider(com.google.inject.Provider) SUBMIT_REQUIREMENTS(com.google.gerrit.extensions.client.ListChangesOption.SUBMIT_REQUIREMENTS) COMMIT_FOOTERS(com.google.gerrit.extensions.client.ListChangesOption.COMMIT_FOOTERS) ALL_COMMITS(com.google.gerrit.extensions.client.ListChangesOption.ALL_COMMITS) Collections(java.util.Collections) StarredChangesUtil(com.google.gerrit.server.StarredChangesUtil) ChangeInfo(com.google.gerrit.extensions.common.ChangeInfo) CurrentUser(com.google.gerrit.server.CurrentUser) ProblemInfo(com.google.gerrit.extensions.common.ProblemInfo) PatchSet(com.google.gerrit.entities.PatchSet) Change(com.google.gerrit.entities.Change) SubmitTypeRecord(com.google.gerrit.entities.SubmitTypeRecord) RevisionInfo(com.google.gerrit.extensions.common.RevisionInfo) RefState(com.google.gerrit.index.RefState) ObjectId(org.eclipse.jgit.lib.ObjectId) TrackingIdInfo(com.google.gerrit.extensions.common.TrackingIdInfo) Map(java.util.Map) ImmutableMap.toImmutableMap(com.google.common.collect.ImmutableMap.toImmutableMap) ImmutableMap(com.google.common.collect.ImmutableMap) HashMap(java.util.HashMap) ChangedLines(com.google.gerrit.server.query.change.ChangeData.ChangedLines)

Example 57 with CurrentUser

use of com.google.gerrit.server.CurrentUser in project gerrit by GerritCodeReview.

the class RebaseChangeOp method updateRepo.

@Override
public void updateRepo(RepoContext ctx) throws MergeConflictException, InvalidChangeOperationException, RestApiException, IOException, NoSuchChangeException, PermissionBackendException {
    // Ok that originalPatchSet was not read in a transaction, since we just
    // need its revision.
    RevWalk rw = ctx.getRevWalk();
    RevCommit original = rw.parseCommit(originalPatchSet.commitId());
    rw.parseBody(original);
    RevCommit baseCommit = rw.parseCommit(baseCommitId);
    CurrentUser changeOwner = identifiedUserFactory.create(notes.getChange().getOwner());
    String newCommitMessage;
    if (detailedCommitMessage) {
        rw.parseBody(baseCommit);
        newCommitMessage = newMergeUtil().createCommitMessageOnSubmit(original, baseCommit, notes, originalPatchSet.id());
    } else {
        newCommitMessage = original.getFullMessage();
    }
    rebasedCommit = rebaseCommit(ctx, original, baseCommit, newCommitMessage);
    Base base = rebaseUtil.parseBase(new RevisionResource(changeResourceFactory.create(notes, changeOwner), originalPatchSet), baseCommitId.name());
    rebasedPatchSetId = ChangeUtil.nextPatchSetIdFromChangeRefs(ctx.getRepoView().getRefs(originalPatchSet.id().changeId().toRefPrefix()).keySet(), notes.getChange().currentPatchSetId());
    patchSetInserter = patchSetInserterFactory.create(notes, rebasedPatchSetId, rebasedCommit).setDescription("Rebase").setFireRevisionCreated(fireRevisionCreated).setCheckAddPatchSetPermission(checkAddPatchSetPermission).setValidate(validate).setSendEmail(sendEmail).setStoreCopiedVotes(storeCopiedVotes);
    if (!rebasedCommit.getFilesWithGitConflicts().isEmpty() && !notes.getChange().isWorkInProgress()) {
        patchSetInserter.setWorkInProgress(true);
    }
    patchSetInserter.setValidationOptions(validationOptions);
    if (postMessage) {
        patchSetInserter.setMessage(messageForRebasedChange(rebasedPatchSetId, originalPatchSet.id(), rebasedCommit));
    }
    if (base != null && !base.notes().getChange().isMerged()) {
        if (!base.notes().getChange().isMerged()) {
            // Add to end of relation chain for open base change.
            patchSetInserter.setGroups(base.patchSet().groups());
        } else {
            // If the base is merged, start a new relation chain.
            patchSetInserter.setGroups(GroupCollector.getDefaultGroups(rebasedCommit));
        }
    }
    ctx.getRevWalk().getObjectReader().getCreatedFromInserter().flush();
    patchSetInserter.updateRepo(ctx);
}
Also used : CurrentUser(com.google.gerrit.server.CurrentUser) CodeReviewRevWalk(com.google.gerrit.server.git.CodeReviewCommit.CodeReviewRevWalk) RevWalk(org.eclipse.jgit.revwalk.RevWalk) Base(com.google.gerrit.server.change.RebaseUtil.Base) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Example 58 with CurrentUser

use of com.google.gerrit.server.CurrentUser in project gerrit by GerritCodeReview.

the class ReviewersUtil method suggestReviewers.

public List<SuggestedReviewerInfo> suggestReviewers(ReviewerState reviewerState, @Nullable ChangeNotes changeNotes, SuggestReviewers suggestReviewers, ProjectState projectState, VisibilityControl visibilityControl, boolean excludeGroups) throws IOException, ConfigInvalidException, PermissionBackendException, BadRequestException {
    CurrentUser currentUser = self.get();
    if (changeNotes != null) {
        logger.atFine().log("Suggesting reviewers for change %s to user %s.", changeNotes.getChangeId().get(), currentUser.getLoggableName());
    } else {
        logger.atFine().log("Suggesting default reviewers for project %s to user %s.", projectState.getName(), currentUser.getLoggableName());
    }
    String query = suggestReviewers.getQuery();
    logger.atFine().log("Query: %s", query);
    int limit = suggestReviewers.getLimit();
    if (!suggestReviewers.getSuggestAccounts()) {
        logger.atFine().log("Reviewer suggestion is disabled.");
        return Collections.emptyList();
    }
    List<Account.Id> candidateList = new ArrayList<>();
    if (!Strings.isNullOrEmpty(query)) {
        candidateList = suggestAccounts(suggestReviewers);
        logger.atFine().log("Candidate list: %s", candidateList);
    }
    List<Account.Id> sortedRecommendations = recommendAccounts(reviewerState, changeNotes, suggestReviewers, projectState, candidateList);
    logger.atFine().log("Sorted recommendations: %s", sortedRecommendations);
    // Filter accounts by visibility, skip service users and enforce limit
    List<Account.Id> filteredRecommendations = new ArrayList<>();
    try (Timer0.Context ctx = metrics.filterVisibility.start()) {
        for (Account.Id reviewer : sortedRecommendations) {
            if (filteredRecommendations.size() >= limit) {
                break;
            }
            if (suggestReviewers.isSkipServiceUsers() && serviceUserClassifier.isServiceUser(reviewer)) {
                continue;
            }
            // Check if change is visible to reviewer and if the current user can see reviewer
            if (visibilityControl.isVisibleTo(reviewer) && accountControlFactory.get().canSee(reviewer)) {
                filteredRecommendations.add(reviewer);
            }
        }
    }
    logger.atFine().log("Filtered recommendations: %s", filteredRecommendations);
    List<SuggestedReviewerInfo> suggestedReviewers = suggestReviewers(suggestReviewers, projectState, visibilityControl, excludeGroups, filteredRecommendations);
    logger.atFine().log("Suggested reviewers: %s", lazy(() -> formatSuggestedReviewers(suggestedReviewers)));
    return suggestedReviewers;
}
Also used : Account(com.google.gerrit.entities.Account) CurrentUser(com.google.gerrit.server.CurrentUser) SuggestedReviewerInfo(com.google.gerrit.extensions.common.SuggestedReviewerInfo) ArrayList(java.util.ArrayList) Timer0(com.google.gerrit.metrics.Timer0)

Example 59 with CurrentUser

use of com.google.gerrit.server.CurrentUser in project gerrit by GerritCodeReview.

the class TasksCollection method parse.

@Override
public TaskResource parse(ConfigResource parent, IdString id) throws ResourceNotFoundException, AuthException, PermissionBackendException, ResourceConflictException {
    CurrentUser user = self.get();
    if (!user.isIdentifiedUser()) {
        throw new AuthException("Authentication required");
    }
    int taskId;
    try {
        taskId = (int) Long.parseLong(id.get(), 16);
    } catch (NumberFormatException e) {
        throw new ResourceNotFoundException(id, e);
    }
    Task<?> task = workQueue.getTask(taskId);
    if (task instanceof ProjectTask) {
        Project.NameKey nameKey = ((ProjectTask<?>) task).getProjectNameKey();
        Optional<ProjectState> state = projectCache.get(nameKey);
        if (!state.isPresent()) {
            throw new ResourceNotFoundException(String.format("project %s not found", nameKey));
        }
        state.get().checkStatePermitsRead();
        try {
            permissionBackend.user(user).project(nameKey).check(ProjectPermission.ACCESS);
            return new TaskResource(task);
        } catch (AuthException e) {
        // Fall through and try view queue permission.
        }
    }
    if (task != null) {
        try {
            permissionBackend.user(user).check(GlobalPermission.VIEW_QUEUE);
            return new TaskResource(task);
        } catch (AuthException e) {
        // Fall through and return not found.
        }
    }
    throw new ResourceNotFoundException(id);
}
Also used : Project(com.google.gerrit.entities.Project) TaskResource(com.google.gerrit.server.config.TaskResource) CurrentUser(com.google.gerrit.server.CurrentUser) AuthException(com.google.gerrit.extensions.restapi.AuthException) ProjectTask(com.google.gerrit.server.git.WorkQueue.ProjectTask) ProjectState(com.google.gerrit.server.project.ProjectState) ResourceNotFoundException(com.google.gerrit.extensions.restapi.ResourceNotFoundException)

Example 60 with CurrentUser

use of com.google.gerrit.server.CurrentUser in project gerrit by GerritCodeReview.

the class GroupsCollection method parse.

@Override
public GroupResource parse(TopLevelResource parent, IdString id) throws AuthException, ResourceNotFoundException {
    final CurrentUser user = self.get();
    if (user instanceof AnonymousUser) {
        throw new AuthException("Authentication required");
    } else if (!(user.isIdentifiedUser() || user.isInternalUser())) {
        throw new ResourceNotFoundException(id);
    }
    GroupDescription.Basic group = groupResolver.parseId(id.get());
    if (group == null) {
        throw new ResourceNotFoundException(id.get());
    }
    GroupControl ctl = groupControlFactory.controlFor(group);
    if (!ctl.isVisible()) {
        throw new ResourceNotFoundException(id);
    }
    return new GroupResource(ctl);
}
Also used : GroupDescription(com.google.gerrit.entities.GroupDescription) GroupControl(com.google.gerrit.server.account.GroupControl) CurrentUser(com.google.gerrit.server.CurrentUser) AuthException(com.google.gerrit.extensions.restapi.AuthException) AnonymousUser(com.google.gerrit.server.AnonymousUser) ResourceNotFoundException(com.google.gerrit.extensions.restapi.ResourceNotFoundException) GroupResource(com.google.gerrit.server.group.GroupResource)

Aggregations

CurrentUser (com.google.gerrit.server.CurrentUser)73 AuthException (com.google.gerrit.extensions.restapi.AuthException)21 Account (com.google.gerrit.reviewdb.client.Account)11 Account (com.google.gerrit.entities.Account)10 PermissionBackend (com.google.gerrit.server.permissions.PermissionBackend)10 PermissionBackendException (com.google.gerrit.server.permissions.PermissionBackendException)10 ChangeData (com.google.gerrit.server.query.change.ChangeData)10 Change (com.google.gerrit.entities.Change)9 UnprocessableEntityException (com.google.gerrit.extensions.restapi.UnprocessableEntityException)9 IdentifiedUser (com.google.gerrit.server.IdentifiedUser)9 IOException (java.io.IOException)9 ResourceNotFoundException (com.google.gerrit.extensions.restapi.ResourceNotFoundException)8 ChangeNotes (com.google.gerrit.server.notedb.ChangeNotes)8 BatchUpdate (com.google.gerrit.server.update.BatchUpdate)8 Provider (com.google.inject.Provider)8 HashMap (java.util.HashMap)8 ArrayList (java.util.ArrayList)6 Map (java.util.Map)6 Test (org.junit.Test)6 PatchSet (com.google.gerrit.entities.PatchSet)5