Search in sources :

Example 31 with SUser

use of jetbrains.buildServer.users.SUser in project teamcity-rest by JetBrains.

the class UserRequest method createToken.

@POST
@Path("/{userLocator}/tokens/{name}")
@Produces({ "application/xml", "application/json" })
@ApiOperation(value = "Create a new authentication token for the matching user.", nickname = "addUserToken", hidden = true)
public Token createToken(@ApiParam(format = LocatorName.USER) @PathParam("userLocator") String userLocator, @PathParam("name") @NotNull final String name, @QueryParam("fields") String fields) {
    if (TeamCityProperties.getBooleanOrTrue(UserFinder.REST_CHECK_ADDITIONAL_PERMISSIONS_ON_USERS_AND_GROUPS)) {
        myUserFinder.checkViewAllUsersPermission();
    }
    final TokenAuthenticationModel tokenAuthenticationModel = myBeanContext.getSingletonService(TokenAuthenticationModel.class);
    final SUser user = myUserFinder.getItem(userLocator, true);
    try {
        final AuthenticationToken token = tokenAuthenticationModel.createToken(user.getId(), name, new Date(PermanentTokenConstants.NO_EXPIRE.getTime()));
        return new Token(token, token.getValue(), new Fields(fields), myBeanContext);
    } catch (AuthenticationTokenStorage.CreationException e) {
        throw new BadRequestException(e.getMessage());
    }
}
Also used : Fields(jetbrains.buildServer.server.rest.model.Fields) SUser(jetbrains.buildServer.users.SUser) BadRequestException(jetbrains.buildServer.server.rest.errors.BadRequestException) Date(java.util.Date) ApiOperation(io.swagger.annotations.ApiOperation)

Example 32 with SUser

use of jetbrains.buildServer.users.SUser in project teamcity-rest by JetBrains.

the class UserRequest method deleteRememberMe.

/**
 * Experimental use only
 */
@DELETE
@Path("/{userLocator}/debug/rememberMe")
@Produces({ "text/plain" })
@ApiOperation(value = "Remove the RememberMe data of the matching user.", nickname = "removeUserRememberMe")
public void deleteRememberMe(@ApiParam(format = LocatorName.USER) @PathParam("userLocator") String userLocator) {
    SUser user = myUserFinder.getItem(userLocator, true);
    PermissionChecker permissionChecker = myBeanContext.getSingletonService(PermissionChecker.class);
    jetbrains.buildServer.users.User currentUser = permissionChecker.getCurrent().getAssociatedUser();
    if (currentUser == null || user.getId() != currentUser.getId()) {
        permissionChecker.checkGlobalPermission(Permission.CHANGE_USER);
    }
    myBeanContext.getSingletonService(RememberMe.class).deleteAllForUser(user.getId());
}
Also used : RememberMe(jetbrains.buildServer.controllers.login.RememberMe) SUser(jetbrains.buildServer.users.SUser) ApiOperation(io.swagger.annotations.ApiOperation)

Example 33 with SUser

use of jetbrains.buildServer.users.SUser in project teamcity-rest by JetBrains.

the class UserRequest method deleteUserField.

@DELETE
@Path("/{userLocator}/{field}")
@ApiOperation(value = "Remove a property of the matching user.", nickname = "deleteUserField")
public void deleteUserField(@ApiParam(format = LocatorName.USER) @PathParam("userLocator") String userLocator, @PathParam("field") String fieldName) {
    final SUser user = myUserFinder.getItem(userLocator, true);
    User.deleteField(user, fieldName);
}
Also used : SUser(jetbrains.buildServer.users.SUser) ApiOperation(io.swagger.annotations.ApiOperation)

Example 34 with SUser

use of jetbrains.buildServer.users.SUser in project teamcity-rest by JetBrains.

the class UserRequest method createUser.

@POST
@Consumes({ "application/xml", "application/json" })
@Produces({ "application/xml", "application/json" })
@ApiOperation(value = "Create a new user.", nickname = "addUser")
public User createUser(User userData, @QueryParam("fields") String fields) {
    final SUser user = myDataUpdater.createUser(userData.getSubmittedUsername());
    myDataUpdater.modify(user, userData, myBeanContext.getServiceLocator());
    return new User(user, new Fields(fields), myBeanContext);
}
Also used : SUser(jetbrains.buildServer.users.SUser) Fields(jetbrains.buildServer.server.rest.model.Fields) SUser(jetbrains.buildServer.users.SUser) ApiOperation(io.swagger.annotations.ApiOperation)

Example 35 with SUser

use of jetbrains.buildServer.users.SUser in project teamcity-rest by JetBrains.

the class UserRequest method deleteUser.

@DELETE
@Path("/{userLocator}")
@ApiOperation(value = "Delete user matching the locator.", nickname = "deleteUser")
public void deleteUser(@ApiParam(format = LocatorName.USER) @PathParam("userLocator") String userLocator) {
    final SUser deletee = myUserFinder.getItem(userLocator, true);
    final SUser deleter = myUserFinder.getCurrentUser();
    if (!ServerAuthUtil.containsAllPermissionsOf(deleter, deletee)) {
        throw new AccessDeniedException(deleter, "You cannot delete user that has more permissions than you");
    }
    myDataProvider.getServer().getSingletonService(UserModel.class).removeUserAccount(deletee.getId());
}
Also used : UserModel(jetbrains.buildServer.users.UserModel) SUser(jetbrains.buildServer.users.SUser) ApiOperation(io.swagger.annotations.ApiOperation)

Aggregations

SUser (jetbrains.buildServer.users.SUser)125 Test (org.testng.annotations.Test)70 ApiOperation (io.swagger.annotations.ApiOperation)35 BaseFinderTest (jetbrains.buildServer.server.rest.data.BaseFinderTest)35 Build (jetbrains.buildServer.server.rest.model.build.Build)20 BadRequestException (jetbrains.buildServer.server.rest.errors.BadRequestException)18 NotNull (org.jetbrains.annotations.NotNull)18 NotFoundException (jetbrains.buildServer.server.rest.errors.NotFoundException)15 SecurityContextEx (jetbrains.buildServer.serverSide.SecurityContextEx)13 Fields (jetbrains.buildServer.server.rest.model.Fields)12 SUserGroup (jetbrains.buildServer.groups.SUserGroup)11 ProjectEx (jetbrains.buildServer.serverSide.impl.ProjectEx)10 ServiceLocator (jetbrains.buildServer.ServiceLocator)9 BuildTypeImpl (jetbrains.buildServer.serverSide.impl.BuildTypeImpl)9 Nullable (org.jetbrains.annotations.Nullable)9 LocatorProcessException (jetbrains.buildServer.server.rest.errors.LocatorProcessException)8 SecurityContextImpl (jetbrains.buildServer.serverSide.impl.auth.SecurityContextImpl)8 java.util (java.util)7 Collectors (java.util.stream.Collectors)7 jetbrains.buildServer.serverSide (jetbrains.buildServer.serverSide)7