Repository: syncope
Updated Branches:
  refs/heads/master 714557e64 -> d43268c10


http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCount.java
----------------------------------------------------------------------
diff --git 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCount.java
 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCount.java
deleted file mode 100644
index 7316768..0000000
--- 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserCount.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.syncope.client.cli.commands.user;
-
-import org.apache.syncope.client.cli.Input;
-import org.apache.syncope.common.lib.SyncopeClientException;
-
-public class UserCount extends AbstractUserCommand {
-
-    private static final String COUNT_HELP_MESSAGE = "user --count";
-
-    private final Input input;
-
-    public UserCount(final Input input) {
-        this.input = input;
-    }
-
-    public void count() {
-        if (input.parameterNumber() == 0) {
-            try {
-                userResultManager.genericMessage("Total users: " + 
userSyncopeOperations.count());
-            } catch (final SyncopeClientException ex) {
-                userResultManager.genericError(ex.getMessage());
-            }
-        } else {
-            userResultManager.unnecessaryParameters(input.listParameters(), 
COUNT_HELP_MESSAGE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
----------------------------------------------------------------------
diff --git 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
new file mode 100644
index 0000000..f09b4ad
--- /dev/null
+++ 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserDetails.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.client.cli.commands.user;
+
+import java.util.List;
+import java.util.Map;
+import org.apache.commons.collections4.map.LinkedMap;
+import org.apache.syncope.client.cli.Input;
+import org.apache.syncope.common.lib.SyncopeClientException;
+import org.apache.syncope.common.lib.to.UserTO;
+
+public class UserDetails extends AbstractUserCommand {
+
+    private static final String COUNT_HELP_MESSAGE = "user --details";
+
+    private final Input input;
+
+    public UserDetails(final Input input) {
+        this.input = input;
+    }
+
+    public void details() {
+        if (input.parameterNumber() == 0) {
+            try {
+                final Map<String, String> details = new LinkedMap<>();
+                final List<UserTO> usersTOs = 
userSyncopeOperations.list().getResult();
+                int withoutResource = 0;
+                int withoutRole = 0;
+                int activeStatus = 0;
+                int suspendedStatus = 0;
+                for (final UserTO userTO : usersTOs) {
+                    if (!userTO.getResources().isEmpty()) {
+                        withoutResource++;
+                    }
+                    if (!userTO.getRoles().isEmpty()) {
+                        withoutRole++;
+                    }
+                    if ("active".equalsIgnoreCase(userTO.getStatus())) {
+                        activeStatus++;
+                    } else if 
("suspended".equalsIgnoreCase(userTO.getStatus())) {
+                        suspendedStatus++;
+                    }
+                }
+                details.put("Total number", String.valueOf(usersTOs.size()));
+                details.put("Active", String.valueOf(activeStatus));
+                details.put("Suspended", String.valueOf(suspendedStatus));
+                details.put("Without resources", 
String.valueOf(withoutResource));
+                details.put("Without roles", String.valueOf(withoutRole));
+                userResultManager.printDetails(details);
+            } catch (final SyncopeClientException ex) {
+                userResultManager.genericError(ex.getMessage());
+            }
+        } else {
+            userResultManager.unnecessaryParameters(input.listParameters(), 
COUNT_HELP_MESSAGE);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
----------------------------------------------------------------------
diff --git 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
index b175842..ccc8631 100644
--- 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
+++ 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserResultManager.java
@@ -19,6 +19,7 @@
 package org.apache.syncope.client.cli.commands.user;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import org.apache.syncope.client.cli.commands.CommonsResultManager;
 import org.apache.syncope.common.lib.to.AttrTO;
@@ -104,4 +105,8 @@ public class UserResultManager extends CommonsResultManager 
{
             System.out.println("       type: " + relationshipTO.getType());
         }
     }
+
+    public void printDetails(final Map<String, String> details) {
+        printDetails("users details", details);
+    }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
----------------------------------------------------------------------
diff --git 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
index 0496d97..8df901f 100644
--- 
a/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
+++ 
b/client/cli/src/main/java/org/apache/syncope/client/cli/commands/user/UserSyncopeOperations.java
@@ -64,10 +64,6 @@ public class UserSyncopeOperations {
         userService.delete(Long.valueOf(userId));
     }
 
-    public int count() {
-        return list().getResult().size();
-    }
-
     public String getUsernameFromId(final String userId) {
         return 
userService.getUsername(Long.valueOf(userId)).getHeaderString(RESTHeaders.USERNAME);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/d43268c1/client/cli/src/main/java/org/apache/syncope/client/cli/view/Table.java
----------------------------------------------------------------------
diff --git 
a/client/cli/src/main/java/org/apache/syncope/client/cli/view/Table.java 
b/client/cli/src/main/java/org/apache/syncope/client/cli/view/Table.java
index 5230f42..3c872fc 100644
--- a/client/cli/src/main/java/org/apache/syncope/client/cli/view/Table.java
+++ b/client/cli/src/main/java/org/apache/syncope/client/cli/view/Table.java
@@ -55,6 +55,7 @@ public final class Table {
     }
 
     public void print() {
+        System.out.println("");
         columnsNumber = headers.size();
         tmpValuesArray = new String[columnsNumber];
 
@@ -69,6 +70,7 @@ public final class Table {
         printBorder();
         printeContent();
         printBorder();
+        System.out.println("");
     }
 
     private void buildTableContentFormat() {

Reply via email to