Search in sources :

Example 16 with GroupDelta

use of com.google.gerrit.server.group.db.GroupDelta in project gerrit by GerritCodeReview.

the class PutDescription method apply.

@Override
public Response<String> apply(GroupResource resource, DescriptionInput input) throws AuthException, NotInternalGroupException, ResourceNotFoundException, IOException, ConfigInvalidException {
    if (input == null) {
        // Delete would set description to null.
        input = new DescriptionInput();
    }
    GroupDescription.Internal internalGroup = resource.asInternalGroup().orElseThrow(NotInternalGroupException::new);
    if (!resource.getControl().isOwner()) {
        throw new AuthException("Not group owner");
    }
    String currentDescription = Strings.nullToEmpty(internalGroup.getDescription());
    String newDescription = Strings.nullToEmpty(input.description);
    if (!Objects.equals(currentDescription, newDescription)) {
        AccountGroup.UUID groupUuid = internalGroup.getGroupUUID();
        GroupDelta groupDelta = GroupDelta.builder().setDescription(newDescription).build();
        try {
            groupsUpdateProvider.get().updateGroup(groupUuid, groupDelta);
        } catch (NoSuchGroupException e) {
            throw new ResourceNotFoundException(String.format("Group %s not found", groupUuid), e);
        }
    }
    return Strings.isNullOrEmpty(input.description) ? Response.none() : Response.ok(input.description);
}
Also used : GroupDescription(com.google.gerrit.entities.GroupDescription) AccountGroup(com.google.gerrit.entities.AccountGroup) GroupDelta(com.google.gerrit.server.group.db.GroupDelta) DescriptionInput(com.google.gerrit.extensions.common.DescriptionInput) AuthException(com.google.gerrit.extensions.restapi.AuthException) ResourceNotFoundException(com.google.gerrit.extensions.restapi.ResourceNotFoundException) NoSuchGroupException(com.google.gerrit.exceptions.NoSuchGroupException)

Example 17 with GroupDelta

use of com.google.gerrit.server.group.db.GroupDelta in project gerrit by GerritCodeReview.

the class AccountCreator method addGroupMember.

private void addGroupMember(AccountGroup.UUID groupUuid, Account.Id accountId) throws IOException, NoSuchGroupException, ConfigInvalidException {
    GroupDelta groupDelta = GroupDelta.builder().setMemberModification(memberIds -> Sets.union(memberIds, ImmutableSet.of(accountId))).build();
    groupsUpdateProvider.get().updateGroup(groupUuid, groupDelta);
}
Also used : InternalGroup(com.google.gerrit.entities.InternalGroup) ConfigInvalidException(org.eclipse.jgit.errors.ConfigInvalidException) NoSuchGroupException(com.google.gerrit.exceptions.NoSuchGroupException) Inject(com.google.inject.Inject) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) GroupsUpdate(com.google.gerrit.server.group.db.GroupsUpdate) ImmutableList(com.google.common.collect.ImmutableList) Objects.requireNonNull(java.util.Objects.requireNonNull) Map(java.util.Map) ExternalIdFactory(com.google.gerrit.server.account.externalids.ExternalIdFactory) AccountsUpdate(com.google.gerrit.server.account.AccountsUpdate) AccountGroup(com.google.gerrit.entities.AccountGroup) ImmutableSet(com.google.common.collect.ImmutableSet) Sequences(com.google.gerrit.server.notedb.Sequences) Collection(java.util.Collection) Account(com.google.gerrit.entities.Account) IOException(java.io.IOException) Sets(com.google.common.collect.Sets) Provider(com.google.inject.Provider) List(java.util.List) Nullable(com.google.gerrit.common.Nullable) ServerInitiated(com.google.gerrit.server.ServerInitiated) Optional(java.util.Optional) ExternalId(com.google.gerrit.server.account.externalids.ExternalId) GroupDelta(com.google.gerrit.server.group.db.GroupDelta) GroupCache(com.google.gerrit.server.account.GroupCache) ServiceUserClassifier(com.google.gerrit.server.account.ServiceUserClassifier) Singleton(com.google.inject.Singleton) GroupDelta(com.google.gerrit.server.group.db.GroupDelta)

Example 18 with GroupDelta

use of com.google.gerrit.server.group.db.GroupDelta in project gerrit by GerritCodeReview.

the class GroupsOnInit method addGroupMemberInNoteDb.

private void addGroupMemberInNoteDb(Repository repository, AccountGroup.UUID groupUuid, Account account) throws IOException, ConfigInvalidException, NoSuchGroupException {
    GroupConfig groupConfig = GroupConfig.loadForGroup(allUsers, repository, groupUuid);
    InternalGroup group = groupConfig.getLoadedGroup().orElseThrow(() -> new NoSuchGroupException(groupUuid));
    GroupDelta groupDelta = getMemberAdditionDelta(account);
    AuditLogFormatter auditLogFormatter = getAuditLogFormatter(account);
    groupConfig.setGroupDelta(groupDelta, auditLogFormatter);
    commit(repository, groupConfig, group.getCreatedOn());
}
Also used : GroupConfig(com.google.gerrit.server.group.db.GroupConfig) GroupDelta(com.google.gerrit.server.group.db.GroupDelta) AuditLogFormatter(com.google.gerrit.server.group.db.AuditLogFormatter) NoSuchGroupException(com.google.gerrit.exceptions.NoSuchGroupException) InternalGroup(com.google.gerrit.entities.InternalGroup)

Example 19 with GroupDelta

use of com.google.gerrit.server.group.db.GroupDelta in project gerrit by GerritCodeReview.

the class CreateAccount method addGroupMember.

private void addGroupMember(AccountGroup.UUID groupUuid, Account.Id accountId) throws IOException, NoSuchGroupException, ConfigInvalidException {
    GroupDelta groupDelta = GroupDelta.builder().setMemberModification(memberIds -> Sets.union(memberIds, ImmutableSet.of(accountId))).build();
    groupsUpdate.get().updateGroup(groupUuid, groupDelta);
}
Also used : GlobalCapability(com.google.gerrit.common.data.GlobalCapability) GroupResolver(com.google.gerrit.server.group.GroupResolver) RequiresCapability(com.google.gerrit.extensions.annotations.RequiresCapability) Inject(com.google.inject.Inject) BadRequestException(com.google.gerrit.extensions.restapi.BadRequestException) GroupsUpdate(com.google.gerrit.server.group.db.GroupsUpdate) AccountExternalIdCreator(com.google.gerrit.server.account.AccountExternalIdCreator) AccountInfo(com.google.gerrit.extensions.common.AccountInfo) SCHEME_USERNAME(com.google.gerrit.server.account.externalids.ExternalId.SCHEME_USERNAME) Locale(java.util.Locale) ImmutableSet(com.google.common.collect.ImmutableSet) SshKeyCache(com.google.gerrit.server.ssh.SshKeyCache) Account(com.google.gerrit.entities.Account) Set(java.util.Set) Sets(com.google.common.collect.Sets) TopLevelResource(com.google.gerrit.extensions.restapi.TopLevelResource) List(java.util.List) Nullable(com.google.gerrit.common.Nullable) UserInitiated(com.google.gerrit.server.UserInitiated) PluginSetContext(com.google.gerrit.server.plugincontext.PluginSetContext) AuthConfig(com.google.gerrit.server.config.AuthConfig) Singleton(com.google.inject.Singleton) VersionedAuthorizedKeys(com.google.gerrit.server.account.VersionedAuthorizedKeys) AccountLoader(com.google.gerrit.server.account.AccountLoader) PermissionBackendException(com.google.gerrit.server.permissions.PermissionBackendException) ConfigInvalidException(org.eclipse.jgit.errors.ConfigInvalidException) NoSuchGroupException(com.google.gerrit.exceptions.NoSuchGroupException) IdString(com.google.gerrit.extensions.restapi.IdString) UnprocessableEntityException(com.google.gerrit.extensions.restapi.UnprocessableEntityException) Response(com.google.gerrit.extensions.restapi.Response) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) AccountInput(com.google.gerrit.extensions.api.accounts.AccountInput) GroupDescription(com.google.gerrit.entities.GroupDescription) RestCollectionCreateView(com.google.gerrit.extensions.restapi.RestCollectionCreateView) ExternalIdFactory(com.google.gerrit.server.account.externalids.ExternalIdFactory) AccountsUpdate(com.google.gerrit.server.account.AccountsUpdate) AccountGroup(com.google.gerrit.entities.AccountGroup) OutgoingEmailValidator(com.google.gerrit.server.mail.send.OutgoingEmailValidator) Sequences(com.google.gerrit.server.notedb.Sequences) AccountResource(com.google.gerrit.server.account.AccountResource) IOException(java.io.IOException) SCHEME_MAILTO(com.google.gerrit.server.account.externalids.ExternalId.SCHEME_MAILTO) InvalidSshKeyException(com.google.gerrit.exceptions.InvalidSshKeyException) Provider(com.google.inject.Provider) ResourceConflictException(com.google.gerrit.extensions.restapi.ResourceConflictException) ExternalId(com.google.gerrit.server.account.externalids.ExternalId) DuplicateExternalIdKeyException(com.google.gerrit.server.account.externalids.DuplicateExternalIdKeyException) GroupDelta(com.google.gerrit.server.group.db.GroupDelta) GroupDelta(com.google.gerrit.server.group.db.GroupDelta)

Example 20 with GroupDelta

use of com.google.gerrit.server.group.db.GroupDelta in project gerrit by GerritCodeReview.

the class AbstractQueryGroupsTest method reindex.

// reindex permissions are tested by {@link GroupsIT#reindexPermissions}
@Test
public void reindex() throws Exception {
    GroupInfo group1 = createGroupWithDescription(name("group"), "barX");
    // update group in the database so that group index is stale
    String newDescription = "barY";
    AccountGroup.UUID groupUuid = AccountGroup.uuid(group1.id);
    GroupDelta groupDelta = GroupDelta.builder().setDescription(newDescription).build();
    groupsUpdateProvider.get().updateGroupInNoteDb(groupUuid, groupDelta);
    assertQuery("description:" + group1.description, group1);
    assertQuery("description:" + newDescription);
    gApi.groups().id(group1.id).index();
    assertQuery("description:" + group1.description);
    assertQuery("description:" + newDescription, group1);
}
Also used : AccountGroup(com.google.gerrit.entities.AccountGroup) GroupInfo(com.google.gerrit.extensions.common.GroupInfo) GroupDelta(com.google.gerrit.server.group.db.GroupDelta) Test(org.junit.Test)

Aggregations

GroupDelta (com.google.gerrit.server.group.db.GroupDelta)20 AccountGroup (com.google.gerrit.entities.AccountGroup)12 NoSuchGroupException (com.google.gerrit.exceptions.NoSuchGroupException)12 GroupDescription (com.google.gerrit.entities.GroupDescription)8 ResourceNotFoundException (com.google.gerrit.extensions.restapi.ResourceNotFoundException)8 Sets (com.google.common.collect.Sets)7 AuthException (com.google.gerrit.extensions.restapi.AuthException)7 GroupsUpdate (com.google.gerrit.server.group.db.GroupsUpdate)7 Inject (com.google.inject.Inject)7 Provider (com.google.inject.Provider)7 Singleton (com.google.inject.Singleton)7 IOException (java.io.IOException)7 ConfigInvalidException (org.eclipse.jgit.errors.ConfigInvalidException)7 Set (java.util.Set)6 Account (com.google.gerrit.entities.Account)5 Response (com.google.gerrit.extensions.restapi.Response)5 UnprocessableEntityException (com.google.gerrit.extensions.restapi.UnprocessableEntityException)5 UserInitiated (com.google.gerrit.server.UserInitiated)5 ArrayList (java.util.ArrayList)5 List (java.util.List)5