You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ha...@apache.org on 2022/11/28 05:34:10 UTC
[cloudstack] branch 2FA updated: New parameter in updateUser API to mandate 2FA
This is an automated email from the ASF dual-hosted git repository.
harikrishna pushed a commit to branch 2FA
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/2FA by this push:
new 8d684c236df New parameter in updateUser API to mandate 2FA
8d684c236df is described below
commit 8d684c236dfe0d0e05fab4583d7d893928bfb405
Author: Harikrishna Patnala <ha...@gmail.com>
AuthorDate: Mon Nov 28 11:03:55 2022 +0530
New parameter in updateUser API to mandate 2FA
---
api/src/main/java/org/apache/cloudstack/api/ApiConstants.java | 1 +
.../apache/cloudstack/api/command/admin/user/UpdateUserCmd.java | 7 +++++++
server/src/main/java/com/cloud/user/AccountManagerImpl.java | 4 ++++
3 files changed, 12 insertions(+)
diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
index 71bb1d6252c..39dabd1b778 100644
--- a/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/main/java/org/apache/cloudstack/api/ApiConstants.java
@@ -910,6 +910,7 @@ public class ApiConstants {
public static final String ANNOTATION_FILTER = "annotationfilter";
public static final String TWOFACTORAUTHENTICATIONCODE = "2facode";
public static final String TWOFACTORAUTHENTICATIONPROVIDER = "twofaprovider";
+ public static final String MANDATE_2FA = "mandate2fa";
public static final String SECRET_CODE = "secretcode";
public static final String LOGIN = "login";
public static final String LOGOUT = "logout";
diff --git a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
index 5035b32d14d..59ec9c2f13f 100644
--- a/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
+++ b/api/src/main/java/org/apache/cloudstack/api/command/admin/user/UpdateUserCmd.java
@@ -80,6 +80,9 @@ public class UpdateUserCmd extends BaseCmd {
@Parameter(name = ApiConstants.USERNAME, type = CommandType.STRING, description = "Unique username")
private String username;
+ @Parameter(name = ApiConstants.MANDATE_2FA, type = CommandType.BOOLEAN, description = "Provide true to mandate the user to use two factor authentication has to be enabled. This parameter is only used to mandate 2FA, not to disable 2FA")
+ private Boolean enable2FA;
+
@Inject
private RegionService _regionService;
@@ -127,6 +130,10 @@ public class UpdateUserCmd extends BaseCmd {
return username;
}
+ public Boolean getEnable2FA() {
+ return enable2FA;
+ }
+
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
diff --git a/server/src/main/java/com/cloud/user/AccountManagerImpl.java b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
index 1941ff1b1a0..42565c51ecb 100644
--- a/server/src/main/java/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/main/java/com/cloud/user/AccountManagerImpl.java
@@ -1391,6 +1391,10 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
if (StringUtils.isNotBlank(timezone)) {
user.setTimezone(timezone);
}
+ Boolean is2FAenabled = updateUserCmd.getEnable2FA();
+ if (is2FAenabled != null && is2FAenabled) {
+ user.setTwoFactorAuthenticationEnabled(true);
+ }
_userDao.update(user.getId(), user);
return _userAccountDao.findById(user.getId());
}