*/ require_once ROOT_DIR . '/include/Forms/UserProfileForm.inc.php'; $languages = Translator::getLanguagesIdAndName(); if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { $form = new UserProfileForm($languages); $form->fillWithPostData(); $password = trim($_POST['password']); $passwordcheck = trim($_POST['passwordcheck']); if (DataValidator::validate_password_modified($password, $passwordcheck) === FALSE) { $message = translateFN('Le password digitate non corrispondono o contengono caratteri non validi.'); header("Location: edit_author.php?message={$message}"); exit; } if ($form->isValid()) { $userObj->fillWithArrayData($_POST); MultiPort::setUser($userObj, array(), true); /* unset $_SESSION['service_level'] to reload it with the correct user language translation */ unset($_SESSION['service_level']); $help = translateFN('Dati salvati'); /*$navigationHistoryObj = $_SESSION['sess_navigation_history']; $location = $navigationHistoryObj->lastModule(); header('Location: ' . $location); exit();*/ } } else { $form = new UserProfileForm($languages); $user_dataAr = $userObj->toArray(); unset($user_dataAr['password']); $user_dataAr['email'] = $user_dataAr['e_mail']; unset($user_dataAr['e_mail']); $form->fillWithArrayData($user_dataAr);
if ($userId !== false) { $editUserObj = MultiPort::findUser($userId); } break; } if (!is_null($editUserObj) && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { $form = new UserProfileForm($languages); $form->fillWithPostData(); if ($form->isValid()) { $user_layout = $_POST['layout']; $editUserObj->fillWithArrayData($_POST); // save extra datas if it has been forced if (isset($_POST['forceSaveExtra']) && $editUserObj->hasExtra()) { $editUserObj->setExtras($_POST); } MultiPort::setUser($editUserObj, array(), true, ADAUser::getExtraTableName()); /** * Set the session user to the saved one if it's not * a switcher, that is not saving its own profile */ if ($userObj->getType() != AMA_TYPE_SWITCHER) { $_SESSION['sess_userObj'] = $editUserObj; } // if registration form is saved ok and userObj is not a switcher, // force a page reload to reflect the changes immediately $retArray = array("status" => "OK", "title" => $title, "msg" => translateFN('Scheda Anagrafica Salvata'), "reload" => true); } else { $retArray = array("status" => "ERROR", "title" => $title, "msg" => translateFN("I dati non sono validi")); } } else { if (is_null($editUserObj)) {
$userId = DataValidator::is_uinteger($_POST[$extraTableClass::getForeignKeyProperty()]); if ($userId !== false) { $editUserObj = MultiPort::findUser($userId); } break; } if (!is_null($editUserObj) && isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { $form = new $extraTableFormClass($languages); $form->fillWithPostData(); if ($form->isValid()) { $arr = array(); $arr[$extraTableClass][0] = $extraTableClass::buildArrayFromPOST($_POST); // setExtras returns the index of the updated element, be it inserted or updated $updatedElementKey = $editUserObj->setExtras($arr); // setUser returns last insert id, or empty on update $result = MultiPort::setUser($editUserObj, array(), true, $extraTableClass); if (!AMA_DB::isError($result)) { /** * need to set the added extra arr * state to saved and to give it the returned id */ $extraTableProperty = 'tbl_' . $extraTableClass; // $lastInsertKey = count($editUserObj->$extraTableProperty)-1; /** * WEIRD STUFF: NEED TO ACCESS OBJECT THIS WAY OTHERWISE WON'T WORK */ $extraTableKeyProperty = $extraTableClass::getKeyProperty(); $temp1 = $editUserObj->{$extraTableProperty}; // $temp = $temp1[$lastInsertKey]; $temp = $temp1[$updatedElementKey]; $temp->{$extraTableKeyProperty} = $result;
} $userToEditObj->setLayout($user_layout); $userToEditObj->setAddress($_POST['user_address']); $userToEditObj->setCity($_POST['user_city']); $userToEditObj->setProvince($_POST['user_province']); $userToEditObj->setCountry($_POST['user_country']); $userToEditObj->setFiscalCode($_POST['user_fiscal_code']); $userToEditObj->setBirthDate($_POST['user_birthdate']); $userToEditObj->setGender($_POST['user_sex']); $userToEditObj->setPhoneNumber($_POST['user_phone']); $userToEditObj->setBirthCity($_POST['user_birthcity']); $userToEditObj->setBirthProvince($_POST['user_birthprovince']); if ($userToEditObj instanceof ADAPractitioner) { $userToEditObj->setProfile($_POST['user_profile']); } MultiPort::setUser($userToEditObj, array(), true); $navigationHistoryObj = $_SESSION['sess_navigation_history']; $location = $navigationHistoryObj->lastModule(); header('Location: ' . $location); exit; } } else { /* * Display the add user form */ if (DataValidator::is_uinteger($_GET['id_user']) === FALSE) { $form = new CText(''); } else { $userToEditObj = MultiPort::findUser($_GET['id_user']); $user_dataAr = $userToEditObj->toArray(); $testers_for_userAr = $common_dh->get_testers_for_user($_GET['id_user']);
$neededObjAr = array(AMA_TYPE_SWITCHER => array('layout')); require_once ROOT_DIR . '/include/module_init.inc.php'; $self = whoami(); // = admin! require_once 'include/switcher_functions.inc.php'; require_once ROOT_DIR . '/include/Forms/UserRemovalForm.inc.php'; /* * YOUR CODE HERE */ if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') { $userId = DataValidator::is_uinteger($_POST['id_user']); if ($userId !== false && isset($_POST['delete']) && intval($_POST['delete']) === 1) { $userToDeleteObj = MultiPort::findUser($userId); if ($userToDeleteObj instanceof ADALoggableUser) { $userToDeleteObj->setStatus(ADA_STATUS_PRESUBSCRIBED); MultiPort::setUser($userToDeleteObj, array(), true); $data = new CText(sprintf(translateFN("L'utente \"%s\" è stato disabilitato."), $userToDeleteObj->getFullName())); } else { $data = new CText(translateFN('Utente non trovato') . '(3)'); } } else { $data = new CText(translateFN('Utente non disabilitato.')); } } else { $userId = DataValidator::is_uinteger($_GET['id_user']); if ($userId === false) { $data = new CText(translateFN('Utente non trovato') . '(1)'); } else { $userToDeleteObj = MultiPort::findUser($userId); if ($userToDeleteObj instanceof ADALoggableUser) { $formData = array('id_user' => $userId);
if (DataValidator::validate_password_modified($password, $passwordcheck) === FALSE) { $message = translateFN('Le password digitate non corrispondono o contengono caratteri non validi.'); header("Location: edit_user.php?message={$message}&id_user=" . $_POST['id_utente']); exit; } if ($form->isValid()) { if (isset($_POST['layout']) && $_POST['layout'] != 'none') { $user_layout = $_POST['layout']; } else { $user_layout = ''; } $userId = DataValidator::is_uinteger($_POST['id_utente']); if ($userId > 0) { $editedUserObj = MultiPort::findUser($userId); $editedUserObj->fillWithArrayData($_POST); $result = MultiPort::setUser($editedUserObj, array(), true); } if (!AMA_DataHandler::isError($result)) { header('Location: view_user.php?id_user='******'Utente aggiunto con successo'); // header('Location: ' . $userObj->getHomePage($message)); // exit(); // } else { // $form = new CText(translateFN('Si sono verificati dei problemi durante la creazione del nuovo utente'));
} else { $userObj->setPassword($password); $new_testers = array(); $resPass = MultiPort::setUser($userObj, $new_testers, TRUE); // TRUE to modify user data if (AMA_DataHandler::isError($resPass)) { $msg = $result->getMessage(); $error_page = HTTP_ROOT_DIR . "/browsing/forget.php"; $errObj = new ADA_Error($requestInfo, translateFN('It was impossible to confirm the password change'), NULL, NULL, NULL, $error_page . '?message=' . urlencode(translateFN('It was impossible to confirm the password change'))); exit; } else { // change status of user ON Common AND ON TESTER ? switch ($userStatus) { case ADA_STATUS_PRESUBSCRIBED: $userObj->setStatus(ADA_STATUS_REGISTERED); $resSet = MultiPort::setUser($userObj, $new_testers, true); /* $adh->set_user_status(ADA_STATUS_REGISTERED); $common_dh->set_user_status(ADA_STATUS_REGISTERED); */ break; case ADA_STATUS_REGISTERED: break; case ADA_STATUS_REMOVED: default: $error_page = HTTP_ROOT_DIR . "/browsing/forget.php"; $errObj = new ADA_Error($requestInfo, translateFN('It was impossible to confirm the password change: user unknown'), NULL, NULL, NULL, $error_page . '?message=' . urlencode(translateFN('It was impossible to confirm the password change: user unknown'))); exit; } $message = translateFN("Password cambiata con successo."); // FIXME: add a get parameter to help user to login ??