- Timestamp:
- 2013-09-06T11:17:55+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/Authentication.java
r28218 r28233 127 127 protected static final String AUTHENTICATION_SERVICE = "Authentication"; 128 128 protected static final String GET_USER_INFORMATION_SERVICE = "GetUserInformation"; 129 protected static final String CHANGE_USER_EDIT_MODE_SERVICE = "ChangeUserEditMode"; 129 130 130 131 protected static boolean _derbyWrapperDoneForcedShutdown = false; … … 171 172 this.short_service_info.appendChild(authentication_service); 172 173 173 // set up Authentication service info - for now just has name and type174 174 Element getUserInformation_service = this.doc.createElement(GSXML.SERVICE_ELEM); 175 175 getUserInformation_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_PROCESS); … … 177 177 this.short_service_info.appendChild(getUserInformation_service); 178 178 179 Element changeEditMode_service = this.doc.createElement(GSXML.SERVICE_ELEM); 180 changeEditMode_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_PROCESS); 181 changeEditMode_service.setAttribute(GSXML.NAME_ATT, CHANGE_USER_EDIT_MODE_SERVICE); 182 this.short_service_info.appendChild(changeEditMode_service); 183 179 184 DerbyWrapper.createDatabaseIfNeeded(); 180 185 181 186 NodeList recaptchaElems = info.getElementsByTagName("recaptcha"); 182 187 for (int i = 0; i < recaptchaElems.getLength(); i++) … … 217 222 authen_service.setAttribute(GSXML.NAME_ATT, GET_USER_INFORMATION_SERVICE); 218 223 } 224 else if (service_id.equals(CHANGE_USER_EDIT_MODE_SERVICE)) 225 { 226 authen_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_PROCESS); 227 authen_service.setAttribute(GSXML.NAME_ATT, CHANGE_USER_EDIT_MODE_SERVICE); 228 } 219 229 else 220 230 { … … 245 255 } 246 256 247 protected Element process GetUserInformation(Element request)257 protected Element processChangeUserEditMode(Element request) 248 258 { 249 259 // Create a new (empty) result message 250 260 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM); 251 261 262 result.setAttribute(GSXML.FROM_ATT, CHANGE_USER_EDIT_MODE_SERVICE); 263 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); 264 265 Element paramList = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 266 if (paramList == null) 267 { 268 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUEST_HAS_NO_PARAM_LIST)); 269 return result; 270 } 271 272 HashMap<String, Serializable> params = GSXML.extractParams(paramList, true); 273 274 String username = (String) params.get("username"); 275 String editMode = (String) params.get("enabled"); 276 277 if (!editMode.toLowerCase().equals("true") && !editMode.toLowerCase().equals("false")) 278 { 279 editMode = "false"; 280 } 281 282 System.err.println("SETTING USER DATA -> " + username + " -> USER_EDIT_ENABLED -> " + editMode); 283 284 DerbyWrapper dw = openDatabase(); 285 dw.addUserData(username, "USER_EDIT_ENABLED", editMode); 286 dw.closeDatabase(); 287 288 return result; 289 } 290 291 protected Element processGetUserInformation(Element request) 292 { 293 // Create a new (empty) result message 294 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM); 295 252 296 result.setAttribute(GSXML.FROM_ATT, GET_USER_INFORMATION_SERVICE); 253 297 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); … … 272 316 DerbyWrapper derbyWrapper = openDatabase(); 273 317 274 try 275 { 276 UserQueryResult userQueryResult = derbyWrapper.findUser(username); 277 278 Vector<UserTermInfo> terms = userQueryResult.getUserTerms(); 279 280 if (terms.size() == 0) 281 { 282 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUESTED_USER_NOT_FOUND)); 283 return result; 284 } 285 286 UserTermInfo userInfo = terms.get(0); 287 Element userInfoList = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 288 result.appendChild(userInfoList); 289 290 Element usernameField = GSXML.createParameter(this.doc, "username", userInfo.username); 291 Element passwordField = GSXML.createParameter(this.doc, "password", userInfo.password); 292 Element groupsField = GSXML.createParameter(this.doc, "groups", userInfo.groups); 293 Element accountStatusField = GSXML.createParameter(this.doc, "accountstatus", userInfo.accountstatus); 294 Element commentField = GSXML.createParameter(this.doc, "comment", userInfo.comment); 295 296 userInfoList.appendChild(usernameField); 297 userInfoList.appendChild(passwordField); 298 userInfoList.appendChild(groupsField); 299 userInfoList.appendChild(accountStatusField); 300 userInfoList.appendChild(commentField); 301 } 302 catch (SQLException ex) 303 { 304 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_SQL_EXCEPTION)); 305 ex.printStackTrace(); 306 } 318 UserQueryResult userQueryResult = derbyWrapper.findUser(username); 319 String editEnabled = derbyWrapper.getUserData(username, "USER_EDIT_ENABLED"); 320 321 Vector<UserTermInfo> terms = userQueryResult.getUserTerms(); 322 323 if (terms.size() == 0) 324 { 325 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUESTED_USER_NOT_FOUND)); 326 return result; 327 } 328 329 UserTermInfo userInfo = terms.get(0); 330 Element userInfoList = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 331 result.appendChild(userInfoList); 332 333 Element usernameField = GSXML.createParameter(this.doc, "username", userInfo.username); 334 Element passwordField = GSXML.createParameter(this.doc, "password", userInfo.password); 335 Element groupsField = GSXML.createParameter(this.doc, "groups", userInfo.groups); 336 Element accountStatusField = GSXML.createParameter(this.doc, "accountstatus", userInfo.accountstatus); 337 Element commentField = GSXML.createParameter(this.doc, "comment", userInfo.comment); 338 339 if (editEnabled != null) 340 { 341 Element editEnabledElem = GSXML.createParameter(this.doc, "editEnabled", editEnabled); 342 userInfoList.appendChild(editEnabledElem); 343 } 344 345 userInfoList.appendChild(usernameField); 346 userInfoList.appendChild(passwordField); 347 userInfoList.appendChild(groupsField); 348 userInfoList.appendChild(accountStatusField); 349 userInfoList.appendChild(commentField); 307 350 308 351 derbyWrapper.closeDatabase();
Note:
See TracChangeset
for help on using the changeset viewer.