1 /**
  2  * @name UserInfo
  3  * @class Shows the current users information
  4  * @description Displays the user info for the user that is currently authenticated
  5  * @returns {
  6 			"username": "...",
  7 			"firstName": "...",
  8 			"middleName": "...",
  9 			"lastName": "...",
 10 			"status": "...",
 11 			"type": "...",
 12 			"address1": "...",
 13 			"address2": "...",
 14 			"city": "...",
 15 			"company": "...",
 16 			"country": "...",
 17 			"state": "...",
 18 			"zip": "...",
 19 			"dept": "...",
 20 			"email": "...",
 21 			"ext": "...",
 22 			"phone": "...",
 23 			"position": "...",
 24             "wcrEnabled": true or false,
 25             "blueEnabled": true or false
 26 		}
 27  * @example /wf/restapi/v2/userInfo
 28  *
 29  * Parameters:
 30  *
 31  Response:
 32  {
 33    "username": "root",
 34    "firstName": "John",
 35    "middleName": "\"the Johnster\"",
 36    "lastName": "Doe",
 37    "status": "Active",
 38    "type": "Global Administrator",
 39    "address1": "123 N 1s Street",
 40    "address2": "APT 1",
 41    "city": "Minneapolis",
 42    "company": "Acme Corporation",
 43    "country": "United States of America",
 44    "state": "Minnesota",
 45    "zip": "55414",
 46    "dept": "Engineering",
 47    "email": "root@localhost",
 48    "ext": "1",
 49    "phone": "123 456 7890",
 50    "position": "dbadmin",
 51    "wcrEnabled": false,
 52    "blueEnabled": false
 53  }
 54  */
 55 var REST = library.REST.REST();
 56 
 57 /**
 58  * Is the current users a WCR user?
 59  * @returns {boolean}
 60  */
 61 function isWCRUser() {
 62   if (!!library.WCR && !!library.WCR.WebCenter) {
 63     try {
 64       var WCR = library.WCR.WebCenter.load();
 65       var aUserInfo = WCR.getUserInfo(context.getUser(), false);
 66       if (!!aUserInfo.username) {
 67         return true;
 68       }
 69     } catch (anE) {
 70       return false;
 71     }
 72   }
 73   return false;
 74 }
 75 
 76 /**
 77  * Is the current users a WCR user?
 78  * @returns {boolean}
 79  */
 80 function isBlueUser() {
 81   if (!!library.Blue && !!library.Blue.libBlue) {
 82     try {
 83       var Blue = library.Blue.libBlue.load();
 84       var aUserInfo = Blue.getUserInfo(context.getUser(), false);
 85       if (!!aUserInfo.username) {
 86         return true;
 87       }
 88     } catch (anE) {
 89       return false;
 90     }
 91   }
 92   return false;
 93 }
 94 
 95 function main() {
 96   var aUser = context.getUser();
 97   var aUserJSON = {
 98     username: aUser.username,
 99     firstName: aUser.firstName,
100     middleName: aUser.middleName,
101     lastName: aUser.lastName,
102     status: aUser.getStatus(),
103     type: aUser.getType(),
104     address1: aUser.address1,
105     address2: aUser.address2,
106     city: aUser.city,
107     company: aUser.company,
108     country: aUser.country,
109     state: aUser.state,
110     zip: aUser.zip,
111     dept: aUser.dept,
112     email: aUser.email,
113     ext: aUser.ext,
114     phone: aUser.phone,
115     position: aUser.position,
116     wcrEnabled: isWCRUser(),
117     blueEnabled: isBlueUser(),
118   };
119   return REST.formatResponse(aUserJSON);
120 }
121 main();
122