diff --git a/src/main/java/org/gitlab4j/api/UserApi.java b/src/main/java/org/gitlab4j/api/UserApi.java index 9a7076ebe6f748bd4d6d67d638910eaaf49fadb7..6f7de604225bf6a6875b45272366ef81369a28d9 100644 --- a/src/main/java/org/gitlab4j/api/UserApi.java +++ b/src/main/java/org/gitlab4j/api/UserApi.java @@ -1381,4 +1381,36 @@ public class UserApi extends AbstractApi { GitLabApiForm formData = new GitLabApiForm(); return (new Pager<>(this, Membership.class, itemsPerPage, formData.asMap(), "users", userId, "memberships")); } + + /** + * Activates the given user (admin only) + * + *
GitLab Endpoint: POST /users/:id/activate
+ *
+ * @param userId the ID of the user to activate
+ * @throws GitLabApiException if any exception occurs.
+ * @since GitLab 12.4
+ */
+ public void activateUser(Long userId) throws GitLabApiException {
+ if (userId == null) {
+ throw new RuntimeException("userId cannot be null");
+ }
+ post(Response.Status.CREATED, (Form) null, "users", userId, "activate");
+ }
+
+ /**
+ * Deactivates the given user (admin only)
+ *
+ * GitLab Endpoint: POST /users/:id/deactivate
+ *
+ * @param userId the ID of the user to deactivate
+ * @throws GitLabApiException if any exception occurs.
+ * @since GitLab 12.4
+ */
+ public void deactivateUser(Long userId) throws GitLabApiException {
+ if (userId == null) {
+ throw new RuntimeException("userId cannot be null");
+ }
+ post(Response.Status.CREATED, (Form) null, "users", userId, "deactivate");
+ }
}
diff --git a/src/test/java/org/gitlab4j/api/PropertyConstants.java b/src/test/java/org/gitlab4j/api/PropertyConstants.java
index 6081d990a2d6d8bd7d8bbc023487cd119b42b31d..a302cd8514f9d2005604b3a9ca84eead7c01cbb3 100644
--- a/src/test/java/org/gitlab4j/api/PropertyConstants.java
+++ b/src/test/java/org/gitlab4j/api/PropertyConstants.java
@@ -9,6 +9,7 @@ public interface PropertyConstants {
String ADMIN_USERNAME_KEY = "TEST_ADMIN_USERNAME";
String ACCESS_TOKEN_KEY = "TEST_ACCESS_TOKEN";
String BLOCK_USERNAME_KEY = "TEST_BLOCK_USERNAME";
+ String DEACTIVATE_USERNAME_KEY = "TEST_DEACTIVATE_USERNAME";
String GROUP_KEY = "TEST_GROUP";
String GROUP_MEMBER_USERNAME_KEY = "TEST_GROUP_MEMBER_USERNAME";
String GROUP_PROJECT_KEY = "TEST_GROUP_PROJECT";
diff --git a/src/test/java/org/gitlab4j/api/TestUserApi.java b/src/test/java/org/gitlab4j/api/TestUserApi.java
index 3ce6d062a69dedeb40ceaaeb7232d2f29bbf67d8..6d17f3ead3cdc123168cc6af36c5be09f4501561 100644
--- a/src/test/java/org/gitlab4j/api/TestUserApi.java
+++ b/src/test/java/org/gitlab4j/api/TestUserApi.java
@@ -59,6 +59,8 @@ public class TestUserApi extends AbstractIntegrationTest {
// The following needs to be set to your test repository
private static final String TEST_USERNAME = HelperUtils.getProperty(USERNAME_KEY);
private static final String TEST_BLOCK_USERNAME = HelperUtils.getProperty(BLOCK_USERNAME_KEY);
+
+ private static final String TEST_DEACTIVATE_USERNAME = HelperUtils.getProperty(DEACTIVATE_USERNAME_KEY);
private static final String TEST_SUDO_AS_USERNAME = HelperUtils.getProperty(SUDO_AS_USERNAME_KEY);
private static final String TEST_IMPERSONATION_TOKEN_NAME = "ipt_1";
@@ -130,6 +132,8 @@ public class TestUserApi extends AbstractIntegrationTest {
private static GitLabApi gitLabApi;
private static User blockUser;
+ private static User deactivateUser;
+
public TestUserApi() {
super();
}
@@ -167,6 +171,16 @@ public class TestUserApi extends AbstractIntegrationTest {
} catch (Exception ignore) {}
}
+ if (TEST_DEACTIVATE_USERNAME != null) {
+ try {
+ deactivateUser = gitLabApi.getUserApi().getUser(TEST_DEACTIVATE_USERNAME);
+ if (deactivateUser != null) {
+ gitLabApi.getUserApi().unblockUser(deactivateUser.getId());
+ }
+ } catch (Exception ignore) {}
+ }
+
+
if (TEST_SSH_KEY != null) {
try {
List