diff --git a/features/backend/pm_user/basic_sequence_pm_user.feature b/features/backend/pm_user/basic_sequence_pm_user.feature new file mode 100644 index 000000000..aa0b2c27c --- /dev/null +++ b/features/backend/pm_user/basic_sequence_pm_user.feature @@ -0,0 +1,169 @@ +@ProcessMakerMichelangelo @RestAPI +Feature: User + Background: + Given that I have a valid access_token + + #GET /api/1.0/{workspace}/users?filter=abc&start=0&limit=25 + # Get list Users + Scenario: Get list Users + And I request "users" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "array" + + #GET /api/1.0/{workspace}/users?filter=abc&start=0&limit=25 + # Get list Users + Scenario: Get list Users + And I request "users?filter=for basic behat" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "array" + And the json data is an empty array + + #GET /api/1.0/{workspace}/user/{usr_uid} + # Get list Users + Scenario: Get list Users + And I request "user/00000000000000000000000000000001" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + And the type is "object" + + #POST /api/1.0/{workspace}/user + # Create new User + Scenario Outline: Create new User + Given POST this data: + """ + { + "usr_firstname": "", + "usr_lastname": "", + "usr_username": "", + "usr_email": "", + "usr_address": "", + "usr_zip_code": "", + "usr_country": "", + "usr_city": "", + "usr_location": "", + "usr_phone": "", + "usr_position": "", + "usr_replaced_by": "", + "usr_due_date": "", + "usr_calendar": "", + "usr_status": "", + "usr_role": "", + "usr_new_pass": "admin", + "usr_cnf_pass": "admin" + } + """ + And I request "user" + And the content type is "application/json" + Then the response status code should be + And the response charset is "UTF-8" + And the type is "" + + + Examples: +|usr_firstname | usr_lastname | usr_username | usr_email | usr_due_date | usr_status | usr_role |http_code| type | + +| | bbb | ab | ab@ab.com | 2014-02-10 | ACTIVE | PROCESSMAKER_MANAGER |400 |string| + +|aaa | | ab | ab@ab.com | 2014-02-10 | ACTIVE | PROCESSMAKER_MANAGER |400 |string| + +|aaa | bbb | | ab@ab.com | 2014-02-10 | ACTIVE | PROCESSMAKER_MANAGER |400 |string| + +|aaa | bbb | ab | | 2014-02-10 | ACTIVE | PROCESSMAKER_MANAGER |400 |string| + +|aaa | bbb | ab | ab@ab.com | | ACTIVE | PROCESSMAKER_MANAGER |400 |string| + +|aaa | bbb | ab | ab@ab.com |2014-02-10 | | PROCESSMAKER_MANAGER |400 |string| + +|aaa | bbb | ab | ab@ab.com |2014-02-10 | ACTIVE | |400 |string| + + + #POST /api/1.0/{workspace}/user + # Create new User + Scenario Outline: Create new User + Given POST this data: + """ + { + "usr_firstname": "", + "usr_lastname": "", + "usr_username": "", + "usr_email": "", + "usr_address": "", + "usr_zip_code": "", + "usr_country": "", + "usr_city": "", + "usr_location": "", + "usr_phone": "", + "usr_position": "", + "usr_replaced_by": "", + "usr_due_date": "", + "usr_calendar": "", + "usr_status": "", + "usr_role": "", + "usr_new_pass": "admin", + "usr_cnf_pass": "admin" + } + """ + And I request "user" + And the content type is "application/json" + Then the response status code should be + And the response charset is "UTF-8" + And the type is "" + And store "usr_uid" in session array as variable "usr_uid" + + Examples: +|usr_firstname | usr_lastname | usr_username | usr_email | usr_due_date | usr_status | usr_role |http_code| type | +|xxx | yyy | zzz | xy@zzz.com| 2014-02-20 | ACTIVE | PROCESSMAKER_MANAGER |201 |object| + + + #PUT /api/1.0/{workspace}/user/{usr_uid} + # Update User + Scenario Outline: Update User + Given PUT this data: + """ + { + "usr_firstname": "", + "usr_lastname": "", + "usr_username": "", + "usr_email": "", + "usr_address": "", + "usr_zip_code": "", + "usr_country": "", + "usr_city": "", + "usr_location": "", + "usr_phone": "", + "usr_position": "", + "usr_replaced_by": "", + "usr_due_date": "", + "usr_calendar": "", + "usr_status": "", + "usr_role": "", + "usr_new_pass": "admin", + "usr_cnf_pass": "admin" + } + """ + And that I want to update a resource with the key "usr_uid" stored in session array as variable "usr_uid" + And I request "user" + And the content type is "application/json" + Then the response status code should be + And the response charset is "UTF-8" + And the type is "" + + Examples: +|usr_firstname | usr_lastname | usr_username | usr_email | usr_due_date | usr_status | usr_role |http_code| type | +|aaa | bbb | ccc | ab@ccc.com| 2014-06-22 | ACTIVE | PROCESSMAKER_OPERATOR |200 |object| + + #DELETE /api/1.0/{workspace}/user/{usr_uid} + # Delete User + Scenario: Delete User + Given that I want to delete a resource with the key "usr_uid" stored in session array as variable "usr_uid" + And I request "user" + And the content type is "application/json" + Then the response status code should be 200 + And the response charset is "UTF-8" + + \ No newline at end of file diff --git a/workflow/engine/src/BusinessModel/User.php b/workflow/engine/src/BusinessModel/User.php index ff1fc67f7..db6bbd64b 100644 --- a/workflow/engine/src/BusinessModel/User.php +++ b/workflow/engine/src/BusinessModel/User.php @@ -322,10 +322,11 @@ class User $aData['USR_PHONE'] = $form['USR_PHONE']; $aData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE']; $aData['USR_POSITION'] = $form['USR_POSITION']; - //$aData['USR_ROLE'] = $form['USR_ROLE']; $aData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY']; $oUser = new \Users(); $oUser -> create( $aData ); + // comment photos files + /* if ($_FILES['USR_PHOTO']['error'] != 1) { //print (PATH_IMAGES_ENVIRONMENT_USERS); if ($_FILES['USR_PHOTO']['tmp_name'] != '') { @@ -335,7 +336,7 @@ class User $result->success = false; $result->fileError = true; throw new \Exception($oError->$result); - } + }*/ if ((isset($form['USR_CALENDAR']))) { //Save Calendar ID for this user \G::LoadClass("calendar"); @@ -487,9 +488,8 @@ class User $aData['USR_EMAIL'] = $form['USR_EMAIL']; } } - if ($form['USR_DUE_DATE'] == '') { - throw new \Exception('`usr_due_date`. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); - } else { + if ($form['USR_DUE_DATE'] != '') { +// throw new \Exception('`usr_due_date`. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); $dueDate = explode("-", $form['USR_DUE_DATE']); if (ctype_digit($dueDate[0])) { if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) { @@ -540,6 +540,8 @@ class User require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php"); $oUser = new \Users(); $oUser->update($aData); + // photo file comment + /* if ($_FILES['USR_PHOTO']['error'] != 1) { if ($_FILES['USR_PHOTO']['tmp_name'] != '') { $aAux = explode('.', $_FILES['USR_PHOTO']['name']); @@ -550,16 +552,16 @@ class User $result->success = false; $result->fileError = true; throw new \Exception($result); - } - /* Saving preferences */ - $def_lang = $form['PREF_DEFAULT_LANG']; + }*/ + /* Saving preferences comment */ + /*$def_lang = $form['PREF_DEFAULT_LANG']; $def_menu = $form['PREF_DEFAULT_MENUSELECTED']; $def_cases_menu = isset($form['PREF_DEFAULT_CASES_MENUSELECTED']) ? $form['PREF_DEFAULT_CASES_MENUSELECTED'] : ''; \G::loadClass('configuration'); $oConf = new \Configurations(); $aConf = Array('DEFAULT_LANG' => $def_lang, 'DEFAULT_MENU' => $def_menu, 'DEFAULT_CASES_MENU' => $def_cases_menu); $oConf->aConfig = $aConf; - $oConf->saveConfig('USER_PREFERENCES', '', '', $usrLoggedUid); + $oConf->saveConfig('USER_PREFERENCES', '', '', $usrLoggedUid);*/ $oCriteria = $this->getUser($usrUid); return $oCriteria; } catch (\Exception $e) { @@ -697,6 +699,7 @@ class User public function getUser($userUid) { try { + $filter = ''; $aUserInfo = array(); $oUser = \UsersPeer::retrieveByPK($userUid); if (is_null($oUser)) {