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());
}
}
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());
}
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);
}
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);
}
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());
}
Aggregations