From 6a265412ea9564b84c10d5c8f4e5fc23f732c822 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Tue, 12 Jul 2005 15:52:15 +0000 Subject: [PATCH] removed profilecreate.php for better error handling --- lam/docs/devel/images/lam_profedit.png | Bin 6422 -> 5604 bytes lam/docs/devel/profile_editor.htm | 29 +++--- lam/templates/profedit/profilecreate.php | 120 ----------------------- lam/templates/profedit/profilepage.php | 94 ++++++++++++++++-- 4 files changed, 100 insertions(+), 143 deletions(-) delete mode 100644 lam/templates/profedit/profilecreate.php diff --git a/lam/docs/devel/images/lam_profedit.png b/lam/docs/devel/images/lam_profedit.png index 4344470ff0a550aec29dc7b570f970f01aa71f96..d9418c7c5949323ee5899a50f35392fdd471c6f2 100644 GIT binary patch literal 5604 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 O0cuLx@FK-$f&T`~+8-zY literal 6422 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 diff --git a/lam/docs/devel/profile_editor.htm b/lam/docs/devel/profile_editor.htm index c11d7255..c75094dd 100644 --- a/lam/docs/devel/profile_editor.htm +++ b/lam/docs/devel/profile_editor.htm @@ -9,8 +9,8 @@

Profile editor

-
profile editor
+


The profile @@ -50,24 +50,19 @@ for a complete list of supported types.

The profiles have unique names under which they are saved. If a profile with the same name already exists it will be overwritten.
-When the user selects to save the profile he will be redirected to -profilecreate.php.
-
-

Profilecreate.php

-This script takes the values which were entered in profilepage.php and -checks them for correctness.

+When the user selects to save the profile then +profilepage.php will check the input for correctness.
First the values are converted to the correct type (checkbox -> -Boolean) by checking $_SESSION['profile_types'].
-
+Boolean) by checking $_SESSION['profile_types']. Then LAM will replace all "\'" with  "'" if magic_quotes_gpc is on.
-
-Now the input data is checked for correctness by calling checkProfileOptions(). The account modules return a list of -error messages if one or more options are incorrect.
-If there are errors they will be displayed, otherwise the profile is + style="font-style: italic;">magic_quotes_gpc
is on. Now the +input data is checked for correctness by calling checkProfileOptions().
+The account modules return a +list of +error messages if one or more options are incorrect. If there are +errors they will be displayed, otherwise the profile is saved by calling saveAccountProfile().

Profiledelete.php

diff --git a/lam/templates/profedit/profilecreate.php b/lam/templates/profedit/profilecreate.php deleted file mode 100644 index fc7838cc..00000000 --- a/lam/templates/profedit/profilecreate.php +++ /dev/null @@ -1,120 +0,0 @@ -server()) { - metaRefresh("../login.php"); - exit; -} - -// print header -echo $_SESSION['header']; -echo "\n\n"; -echo "\n\n
\n"; - -// create option array to check and save -$options = array(); -$opt_keys = array_keys($_SESSION['profile_types']); -foreach ($opt_keys as $element) { - // text fields - if ($_SESSION['profile_types'][$element] == "text") { - $options[$element] = array($_POST[$element]); - } - // checkboxes - elseif ($_SESSION['profile_types'][$element] == "checkbox") { - if ($_POST[$element] == "on") $options[$element] = array('true'); - else $options[$element] = array('false'); - } - // dropdownbox - elseif ($_SESSION['profile_types'][$element] == "select") { - $options[$element] = array($_POST[$element]); - } - // multiselect - elseif ($_SESSION['profile_types'][$element] == "multiselect") { - $options[$element] = $_POST[$element]; // value is already an array - } -} - -// remove double slashes if magic quotes are on -if (get_magic_quotes_gpc() == 1) { - foreach ($opt_keys as $element) { - if (is_string($options[$element][0])) $options[$element][0] = stripslashes($options[$element][0]); - } -} - -// check options -$errors = checkProfileOptions($_POST['accounttype'], $options); -// print error messages if any -if (sizeof($errors) > 0) { - for ($i = 0; $i < sizeof($errors); $i++) { - if (sizeof($errors[$i]) > 3) { // messages with additional variables - StatusMessage($errors[$i][0], $errors[$i][1], $errors[$i][2], $errors[$i][3]); - } - else { - StatusMessage($errors[$i][0], $errors[$i][1], $errors[$i][2]); - } - } -} -else { // input data is valid, save profile - // save profile - if (saveAccountProfile($options, $_POST['profname'], $_POST['accounttype'])) { - echo StatusMessage("INFO", _("Profile was saved."), $_POST['profname']); - } - else StatusMessage("ERROR", _("Unable to save profile!"), $_POST['profname']); - echo ("

" . _("Back to Profile Editor") . "

"); -} - -echo ("\n"); - -?> diff --git a/lam/templates/profedit/profilepage.php b/lam/templates/profedit/profilepage.php index 7a4e1cfa..721d9fda 100644 --- a/lam/templates/profedit/profilepage.php +++ b/lam/templates/profedit/profilepage.php @@ -36,6 +36,8 @@ include_once("../../lib/ldap.inc"); include_once("../../lib/config.inc"); /** access to account modules */ include_once("../../lib/modules.inc"); +/** Used to display status messages */ +include_once("../../lib/status.inc"); // start session session_save_path("../../sess"); @@ -49,14 +51,83 @@ if (!$_SESSION['ldap'] || !$_SESSION['ldap']->server()) { exit; } -// empty list of attribute types -$_SESSION['profile_types'] = array(); +// copy type and profile name from POST to GET +if (isset($_POST['profname'])) $_GET['edit'] = $_POST['profname']; +if (isset($_POST['accounttype'])) $_GET['type'] = $_POST['accounttype']; + +// abort button was pressed +// back to profile editor +if ($_POST['abort']) { + metaRefresh("profilemain.php"); + exit; +} // print header echo $_SESSION['header']; echo "\n\n"; echo "
\n"; +// save button was presed +if ($_POST['save']) { + // create option array to check and save + $options = array(); + $opt_keys = array_keys($_SESSION['profile_types']); + foreach ($opt_keys as $element) { + // text fields + if ($_SESSION['profile_types'][$element] == "text") { + $options[$element] = array($_POST[$element]); + } + // checkboxes + elseif ($_SESSION['profile_types'][$element] == "checkbox") { + if ($_POST[$element] == "on") $options[$element] = array('true'); + else $options[$element] = array('false'); + } + // dropdownbox + elseif ($_SESSION['profile_types'][$element] == "select") { + $options[$element] = array($_POST[$element]); + } + // multiselect + elseif ($_SESSION['profile_types'][$element] == "multiselect") { + $options[$element] = $_POST[$element]; // value is already an array + } + } + + // remove double slashes if magic quotes are on + if (get_magic_quotes_gpc() == 1) { + foreach ($opt_keys as $element) { + if (is_string($options[$element][0])) $options[$element][0] = stripslashes($options[$element][0]); + } + } + + // check options + $errors = checkProfileOptions($_POST['accounttype'], $options); + // print error messages if any + if (sizeof($errors) > 0) { + for ($i = 0; $i < sizeof($errors); $i++) { + if (sizeof($errors[$i]) > 3) { // messages with additional variables + StatusMessage($errors[$i][0], $errors[$i][1], $errors[$i][2], $errors[$i][3]); + } + else { + StatusMessage($errors[$i][0], $errors[$i][1], $errors[$i][2]); + } + } + echo "
\n"; + } + else { // input data is valid, save profile + // save profile + if (saveAccountProfile($options, $_POST['profname'], $_POST['accounttype'])) { + echo StatusMessage("INFO", _("Profile was saved."), $_POST['profname']); + echo ("

" . _("Back to Profile Editor") . "

"); + echo ""; + exit(); + } + else StatusMessage("ERROR", _("Unable to save profile!"), $_POST['profname']); + } +} + +// empty list of attribute types +$_SESSION['profile_types'] = array(); + // check if account type is valid $type = $_GET['type']; if (!(($type == 'user') || ($type == 'group') || ($type == 'host'))) meta_refresh('profilemain.php'); @@ -64,14 +135,25 @@ if (!(($type == 'user') || ($type == 'group') || ($type == 'host'))) meta_refres // get module options $options = getProfileOptions($type); -// load old profile if needed +// load old profile or POST values if needed $old_options = array(); -if ($_GET['edit']) { +if (isset($_POST['save'])) { + $postKeys = array_keys($_POST); + for ($i = 0; $i < sizeof($postKeys); $i++) { + if (!is_array($_POST[$postKeys[$i]])) { + $old_options[$postKeys[$i]] = array($_POST[$postKeys[$i]]); + } + else { + $old_options[$postKeys[$i]] = $_POST[$postKeys[$i]]; + } + } +} +elseif (isset($_GET['edit'])) { $old_options = loadAccountProfile($_GET['edit'], $type); } // display formular -echo ("
\n"); +echo ("\n"); // suffix box // get root suffix @@ -157,7 +239,7 @@ echo ""; echo "\"""; echo "

\n"; $tabindex++; -echo ("\n"); +echo ("\n"); $tabindex++; echo ("\n"); $tabindex++;