Search in sources :

Example 1 with UserId

use of org.sonar.server.permission.UserId in project sonarqube by SonarSource.

the class RemoveUserAction method handle.

@Override
public void handle(Request request, Response response) throws Exception {
    try (DbSession dbSession = dbClient.openSession(false)) {
        UserId user = support.findUser(dbSession, request.mandatoryParam(PARAM_USER_LOGIN));
        Optional<ProjectId> projectId = support.findProjectId(dbSession, request);
        OrganizationDto org = support.findOrganization(dbSession, request.param(PARAM_ORGANIZATION));
        checkProjectAdmin(userSession, org.getUuid(), projectId);
        PermissionChange change = new UserPermissionChange(PermissionChange.Operation.REMOVE, org.getUuid(), request.mandatoryParam(PARAM_PERMISSION), projectId.orElse(null), user);
        permissionUpdater.apply(dbSession, asList(change));
        response.noContent();
    }
}
Also used : DbSession(org.sonar.db.DbSession) UserId(org.sonar.server.permission.UserId) PermissionChange(org.sonar.server.permission.PermissionChange) UserPermissionChange(org.sonar.server.permission.UserPermissionChange) ProjectId(org.sonar.server.permission.ProjectId) UserPermissionChange(org.sonar.server.permission.UserPermissionChange) OrganizationDto(org.sonar.db.organization.OrganizationDto)

Example 2 with UserId

use of org.sonar.server.permission.UserId in project sonarqube by SonarSource.

the class AddUserAction method handle.

@Override
public void handle(Request request, Response response) throws Exception {
    try (DbSession dbSession = dbClient.openSession(false)) {
        UserId user = support.findUser(dbSession, request.mandatoryParam(PARAM_USER_LOGIN));
        Optional<ComponentDto> project = support.findProject(dbSession, request);
        String organizationKey = request.param(PARAM_ORGANIZATION);
        checkArgument(!project.isPresent() || organizationKey == null, "Organization must not be set when project is set.");
        OrganizationDto org = project.map(dto -> dbClient.organizationDao().selectByUuid(dbSession, dto.getOrganizationUuid())).orElseGet(() -> Optional.ofNullable(support.findOrganization(dbSession, organizationKey))).orElseThrow(() -> new NotFoundException(String.format("Organization with key '%s' not found", organizationKey)));
        Optional<ProjectId> projectId = project.map(ProjectId::new);
        checkProjectAdmin(userSession, org.getUuid(), projectId);
        PermissionChange change = new UserPermissionChange(PermissionChange.Operation.ADD, org.getUuid(), request.mandatoryParam(PARAM_PERMISSION), projectId.orElse(null), user);
        permissionUpdater.apply(dbSession, asList(change));
    }
    response.noContent();
}
Also used : DbSession(org.sonar.db.DbSession) UserId(org.sonar.server.permission.UserId) PermissionChange(org.sonar.server.permission.PermissionChange) UserPermissionChange(org.sonar.server.permission.UserPermissionChange) ComponentDto(org.sonar.db.component.ComponentDto) ProjectId(org.sonar.server.permission.ProjectId) NotFoundException(org.sonar.server.exceptions.NotFoundException) UserPermissionChange(org.sonar.server.permission.UserPermissionChange) OrganizationDto(org.sonar.db.organization.OrganizationDto)

Example 3 with UserId

use of org.sonar.server.permission.UserId in project sonarqube by SonarSource.

the class PermissionWsSupport method findUser.

public UserId findUser(DbSession dbSession, String login) {
    UserDto dto = dbClient.userDao().selectActiveUserByLogin(dbSession, login);
    checkFound(dto, "User with login '%s' is not found'", login);
    return new UserId(dto.getId(), dto.getLogin());
}
Also used : UserId(org.sonar.server.permission.UserId) UserDto(org.sonar.db.user.UserDto)

Example 4 with UserId

use of org.sonar.server.permission.UserId in project sonarqube by SonarSource.

the class RemoveUserFromTemplateAction method doHandle.

private void doHandle(RemoveUserFromTemplateWsRequest request) {
    String permission = request.getPermission();
    String userLogin = request.getLogin();
    try (DbSession dbSession = dbClient.openSession(false)) {
        validateProjectPermission(permission);
        PermissionTemplateDto template = wsSupport.findTemplate(dbSession, WsTemplateRef.newTemplateRef(request.getTemplateId(), request.getOrganization(), request.getTemplateName()));
        checkGlobalAdmin(userSession, template.getOrganizationUuid());
        UserId user = wsSupport.findUser(dbSession, userLogin);
        dbClient.permissionTemplateDao().deleteUserPermission(dbSession, template.getId(), user.getId(), permission);
        dbSession.commit();
    }
}
Also used : DbSession(org.sonar.db.DbSession) PermissionTemplateDto(org.sonar.db.permission.template.PermissionTemplateDto) UserId(org.sonar.server.permission.UserId)

Example 5 with UserId

use of org.sonar.server.permission.UserId in project sonarqube by SonarSource.

the class AddUserToTemplateAction method doHandle.

private void doHandle(AddUserToTemplateWsRequest request) {
    String permission = request.getPermission();
    String userLogin = request.getLogin();
    try (DbSession dbSession = dbClient.openSession(false)) {
        PermissionTemplateDto template = wsSupport.findTemplate(dbSession, newTemplateRef(request.getTemplateId(), request.getOrganization(), request.getTemplateName()));
        checkGlobalAdmin(userSession, template.getOrganizationUuid());
        UserId user = wsSupport.findUser(dbSession, userLogin);
        if (!isUserAlreadyAdded(dbSession, template.getId(), userLogin, permission)) {
            dbClient.permissionTemplateDao().insertUserPermission(dbSession, template.getId(), user.getId(), permission);
            dbSession.commit();
        }
    }
}
Also used : DbSession(org.sonar.db.DbSession) PermissionTemplateDto(org.sonar.db.permission.template.PermissionTemplateDto) UserId(org.sonar.server.permission.UserId)

Aggregations

UserId (org.sonar.server.permission.UserId)5 DbSession (org.sonar.db.DbSession)4 OrganizationDto (org.sonar.db.organization.OrganizationDto)2 PermissionTemplateDto (org.sonar.db.permission.template.PermissionTemplateDto)2 PermissionChange (org.sonar.server.permission.PermissionChange)2 ProjectId (org.sonar.server.permission.ProjectId)2 UserPermissionChange (org.sonar.server.permission.UserPermissionChange)2 ComponentDto (org.sonar.db.component.ComponentDto)1 UserDto (org.sonar.db.user.UserDto)1 NotFoundException (org.sonar.server.exceptions.NotFoundException)1