diff --git a/src/main/java/org/olat/basesecurity/Constants.java b/src/main/java/org/olat/basesecurity/Constants.java index 8cd0fa250b2b7722a7b8fb66cb4c13f7930a779f..f64e2e4373b487ef1a17dd5aeced673d8e603796 100644 --- a/src/main/java/org/olat/basesecurity/Constants.java +++ b/src/main/java/org/olat/basesecurity/Constants.java @@ -211,4 +211,27 @@ public class Constants { */ public static final OLATResourceable ORESOURCE_GUESTONLY = OresHelper.lookupType(BaseSecurityModule.class, "RGuestOnly"); + /** + * status of a user + * <code>USERSTATUS_ACTIVE</code> is an active user + */ + public static final Integer USERSTATUS_ACTIVE = 2; + + /** + * status of a user + * <code>USERSTATUS_NOT_DELETEABLE</code> is a not deleteable user + */ + public static final Integer USERSTATUS_NOT_DELETEABLE = 1; + + /** + * status of a user + * <code>USERSTATUS_LOGIN_DENIED</code> is a user, whose login is denied + */ + public static final Integer USERSTATUS_LOGIN_DENIED = 101; + + /** + * status of a user + * <code>USERSTATUS_DELETED</code> is a deleted user + */ + public static final Integer USERSTATUS_DELETED = 199; } \ No newline at end of file diff --git a/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java b/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java index ba440fddaff03838d31d19079de3338430e44896..aca62556c7eb2ab1513a27667a2a48d4161388a1 100644 --- a/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java +++ b/src/main/java/org/olat/restapi/system/OpenOLATStatisticsWebService.java @@ -33,6 +33,7 @@ import javax.ws.rs.core.Response; import org.olat.admin.sysinfo.manager.SessionStatsManager; import org.olat.admin.sysinfo.model.SessionsStats; import org.olat.basesecurity.BaseSecurity; +import org.olat.basesecurity.Constants; import org.olat.core.CoreSpringFactory; import org.olat.core.util.SessionInfo; import org.olat.core.util.UserSession; @@ -170,6 +171,8 @@ public class OpenOLATStatisticsWebService implements Sampler { BaseSecurity securityManager = CoreSpringFactory.getImpl(BaseSecurity.class); long countUsers = securityManager.countIdentitiesByPowerSearch(null, null, false, null, null, null, null, null, null, null, null); stats.setTotalUserCount(countUsers); + long countActiveUsers = securityManager.countIdentitiesByPowerSearch(null, null, false, null, null, null, null, null, null, null, Constants.USERSTATUS_ACTIVE); + stats.setActiveUserCount(countActiveUsers); BusinessGroupService bgs = CoreSpringFactory.getImpl(BusinessGroupService.class); long countGroups = bgs.countBusinessGroups(null, null); diff --git a/src/main/java/org/olat/restapi/system/vo/UserStatisticsVO.java b/src/main/java/org/olat/restapi/system/vo/UserStatisticsVO.java index a437267751345d48309f06c86ed264a962a5fad8..146cd683971d7257454e7b8fb00802a647b6eaab 100644 --- a/src/main/java/org/olat/restapi/system/vo/UserStatisticsVO.java +++ b/src/main/java/org/olat/restapi/system/vo/UserStatisticsVO.java @@ -34,6 +34,8 @@ public class UserStatisticsVO { @XmlAttribute(name="totalUserCount", required=true) private long totalUserCount; + @XmlAttribute(name="activeUserCount", required=true) + private long activeUserCount; @XmlAttribute(name="totalGroupCount", required=true) private long totalGroupCount; @@ -46,6 +48,14 @@ public class UserStatisticsVO { this.totalUserCount = totalUserCount; } + public long getActiveUserCount() { + return activeUserCount; + } + + public void setActiveUserCount(long activeUserCount) { + this.activeUserCount = activeUserCount; + } + public long getTotalGroupCount() { return totalGroupCount; } diff --git a/src/test/java/org/olat/restapi/SystemTest.java b/src/test/java/org/olat/restapi/SystemTest.java index 240f821dc0759f3e2cd0a00d42f22fb156c0bd3e..9a12feb4d1bc7b9b10ad1fd04904050f84688c3b 100644 --- a/src/test/java/org/olat/restapi/SystemTest.java +++ b/src/test/java/org/olat/restapi/SystemTest.java @@ -157,6 +157,7 @@ public class SystemTest extends OlatJerseyTestCase { assertNotNull(userStats); assertTrue(userStats.getTotalUserCount() > 0); assertTrue(userStats.getTotalGroupCount() >= 0); + assertTrue(userStats.getActiveUserCount() >= 0); conn.shutdown(); }