Forráskód Böngészése

HPCC-16565 ws_access/UserQuery needs to return employeeID

Employee ID not returned from ws_access UserQuery feature. This PR adds
it to the returned values

Signed-off-by: Russ Whitehead <william.whitehead@lexisnexis.com>
Russ Whitehead 8 éve
szülő
commit
d82afcde68

+ 1 - 0
esp/scm/ws_access.ecm

@@ -20,6 +20,7 @@ ESPenum UserSortBy : string
     Name("Name"),
     FullName("FullName"),
     PasswordExpiration("PasswordExpiration"),
+    EmployeeID("EmployeeID"),
 };
 
 ESPenum GroupSortBy : string

+ 16 - 0
esp/services/ws_access/ws_accessService.cpp

@@ -504,6 +504,9 @@ bool Cws_accessEx::onUserQuery(IEspContext &context, IEspUserQueryRequest &req,
         case CUserSortBy_PasswordExpiration:
             sortOrder[0] = UFPasswordExpiration;
             break;
+        case CUserSortBy_EmployeeID:
+            sortOrder[0] = UFEmployeeID;
+            break;
         default:
             break;
         }
@@ -531,6 +534,11 @@ bool Cws_accessEx::onUserQuery(IEspContext &context, IEspUserQueryRequest &req,
             const char* passwordExpiration = usr.queryProp(getUserFieldNames(UFPasswordExpiration));
             if (passwordExpiration && *passwordExpiration)
                 userInfo->setPasswordexpiration(passwordExpiration);
+
+            const char* employeeID = usr.queryProp(getUserFieldNames(UFEmployeeID));
+            if (employeeID && *employeeID)
+                userInfo->setEmployeeID(employeeID);
+
             espUsers.append(*userInfo.getClear());
         }
 
@@ -1334,6 +1342,9 @@ bool Cws_accessEx::onGroupMemberQuery(IEspContext &context, IEspGroupMemberQuery
         case CUserSortBy_PasswordExpiration:
             sortOrder[0] = UFPasswordExpiration;
             break;
+        case CUserSortBy_EmployeeID:
+            sortOrder[0] = UFEmployeeID;
+            break;
         default:
             break;
         }
@@ -1361,6 +1372,11 @@ bool Cws_accessEx::onGroupMemberQuery(IEspContext &context, IEspGroupMemberQuery
             const char* passwordExpiration = usr.queryProp(getUserFieldNames(UFPasswordExpiration));
             if (passwordExpiration && *passwordExpiration)
                 userInfo->setPasswordexpiration(passwordExpiration);
+
+            const char* employeeID = usr.queryProp(getUserFieldNames(UFEmployeeID));
+            if (employeeID && *employeeID)
+                userInfo->setEmployeeID(employeeID);
+
             users.append(*userInfo.getLink());
         }
 

+ 2 - 1
system/security/LdapSecurity/ldapconnection.cpp

@@ -60,7 +60,7 @@
 
 #define UNK_PERM_VALUE (SecAccessFlags)-2	//used to initialize "default" permission, which we later try to deduce
 
-const char* UserFieldNames[] = { "@id", "@name", "@fullname", "@passwordexpiration" };
+const char* UserFieldNames[] = { "@id", "@name", "@fullname", "@passwordexpiration", "@employeeid" };
 
 const char* getUserFieldNames(UserField field)
 {
@@ -2533,6 +2533,7 @@ public:
             userTree->addProp(getUserFieldNames(UFFullName), fullName);
         userTree->addPropInt(getUserFieldNames(UFUserID), usr.getUserID());
         userTree->addProp(getUserFieldNames(UFPasswordExpiration), sb.str());
+        userTree->addProp(getUserFieldNames(UFEmployeeID), usr.getEmployeeID());
         users->addPropTree("User", userTree.getClear());
     }
 

+ 2 - 1
system/security/LdapSecurity/ldapconnection.hpp

@@ -109,7 +109,8 @@ enum UserField
     UFName = 1,
     UFFullName = 2,
     UFPasswordExpiration = 3,
-    UFterm = 4,
+    UFEmployeeID = 4,
+    UFterm = 5,
     UFreverse = 256,
     UFnocase = 512,
     UFnumeric = 1024