From 572d66e77aedcaf95b2c52cd4cc8960d69310c00 Mon Sep 17 00:00:00 2001 From: Cameron Date: Sat, 7 Feb 2015 01:45:36 -0800 Subject: [PATCH] Fixed password-protected pages. --- e107_admin/cpage.php | 5 ++-- e107_core/templates/page_template.php | 15 ++++++++-- e107_handlers/form_handler.php | 41 +++++++++++++++++++++++---- e107_themes/bootstrap/admin_dark.css | 2 +- page.php | 6 ++-- 5 files changed, 56 insertions(+), 13 deletions(-) diff --git a/e107_admin/cpage.php b/e107_admin/cpage.php index f4921a8c9..23c7ce1dc 100644 --- a/e107_admin/cpage.php +++ b/e107_admin/cpage.php @@ -20,6 +20,7 @@ e107::css('inline'," "); include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/admin/lan_'.e_PAGE); +include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_page.php'); $e_sub_cat = 'custom'; @@ -468,10 +469,10 @@ class page_admin_ui extends e_admin_ui // Options Tab. 'page_datestamp' => array('title'=> LAN_DATE, 'tab' => 1, 'type' => 'datestamp', 'data'=>'int', 'width' => 'auto','writeParms'=>'auto=1'), - 'page_class' => array('title'=> LAN_USERCLASS, 'tab' => 1, 'type' => 'userclass', 'data'=>'int', 'inline'=>true, 'width' => 'auto', 'filter' => true, 'batch' => true), + 'page_class' => array('title'=> LAN_VISIBILITY, 'tab' => 1, 'type' => 'userclass', 'data'=>'int', 'inline'=>true, 'width' => 'auto', 'filter' => true, 'batch' => true), 'page_rating_flag' => array('title'=> LAN_RATING, 'tab' => 1, 'type' => 'boolean', 'data'=>'int', 'width' => '5%', 'thclass' => 'center', 'class' => 'center' ), 'page_comment_flag' => array('title'=> ADLAN_114, 'tab' => 1, 'type' => 'boolean', 'data'=>'int', 'width' => '5%', 'thclass' => 'center', 'class' => 'center' ), - // 'page_password' => array('title'=> LXAN_USER_05, 'type' => 'text', 'width' => 'auto'), + 'page_password' => array('title'=> LAN_PAGE_9, 'tab' => 1, 'type' => 'text', 'data'=>'str', 'width' => 'auto', 'writeParms'=>array('password'=>1, 'nomask'=>1, 'size' => 40, 'class' => 'tbox e-password', 'generate' => 1, 'strength' => 1)), 'page_sef' => array('title'=> LAN_SEFURL, 'tab' => 1, 'type' => 'text', 'inline'=>true, 'width' => 'auto', 'writeParms'=>'size=xxlarge'), 'page_metakeys' => array('title'=> LAN_KEYWORDS, 'tab' => 1, 'type' => 'tags', 'width' => 'auto'), 'page_metadscr' => array('title'=> CUSLAN_11, 'tab' => 1, 'type' => 'text', 'width' => 'auto', 'writeParms'=>'size=xxlarge'), diff --git a/e107_core/templates/page_template.php b/e107_core/templates/page_template.php index aa911e58b..ae54786bd 100644 --- a/e107_core/templates/page_template.php +++ b/e107_core/templates/page_template.php @@ -53,11 +53,20 @@ $sc_style['CPAGENAV|default']['post'] = ''; // used only when password authorization is required $PAGE_TEMPLATE['default']['authorize'] = ' -
+
{message} {form_open} -

{caption}

-
{label} {password} {submit}
+
+
{caption}
+
+
+ +
+ {password} {submit} +
+
+
+
{form_close}
'; diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 353473729..edc122a41 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -1062,7 +1062,12 @@ class e_form if(vartrue($options['generate'])) { - $gen = ' Generate Show
'; + $gen = ' Generate '; + + if(empty($options['nomask'])) + { + $gen .= 'Show
'; + } } if(vartrue($options['strength'])) @@ -1079,10 +1084,19 @@ class e_form $options['class'] .= ' form-control'; } + if(vartrue($options['size']) && !is_numeric($options['size'])) + { + $options['class'] .= " input-".$options['size']; + unset($options['size']); // don't include in html 'size='. + } + + $type = empty($options['nomask']) ? 'password' : 'text'; + $options = $this->format_options('text', $name, $options); + //never allow id in format name-value for text fields - $text = "get_attributes($options, $name)." />"; + $text = "get_attributes($options, $name)." />"; if(empty($gen) && empty($addon)) { @@ -2316,7 +2330,7 @@ class e_form break; case 'submit': - $def_options['class'] = 'button'; + $def_options['class'] = 'button btn btn-primary'; unset($def_options['checked'], $def_options['selected'], $def_options['readonly']); break; @@ -3570,11 +3584,28 @@ class e_form break; // case 'email': - case 'text': + case 'password': // encrypts to md5 when saved. $maxlength = vartrue($parms['maxlength'], 255); unset($parms['maxlength']); - $ret = vartrue($parms['pre']).$this->text($key, $value, $maxlength, $parms).vartrue($parms['post']); // vartrue($parms['__options']) is limited. See 'required'=>true + $ret = vartrue($parms['pre']).$this->password($key, $value, $maxlength, $parms).vartrue($parms['post']); // vartrue($parms['__options']) is limited. See 'required'=>true + + break; + + case 'text': + + $maxlength = vartrue($parms['maxlength'], 255); + unset($parms['maxlength']); + + if(!empty($parms['password'])) // password mechanism without the md5 storage. + { + $ret = vartrue($parms['pre']).$this->password($key, $value, $maxlength, $parms).vartrue($parms['post']); + } + else + { + $ret = vartrue($parms['pre']).$this->text($key, $value, $maxlength, $parms).vartrue($parms['post']); // vartrue($parms['__options']) is limited. See 'required'=>true + } + break; case 'tags': diff --git a/e107_themes/bootstrap/admin_dark.css b/e107_themes/bootstrap/admin_dark.css index 1651f8f87..f7eaa4465 100644 --- a/e107_themes/bootstrap/admin_dark.css +++ b/e107_themes/bootstrap/admin_dark.css @@ -12,7 +12,7 @@ thead tr { } table.adminlist { border-left:1px solid #212121; border-right:1px solid #212121; border-bottom:1px solid #212121} -div.navbar-inner { border: 1px solid #212121; } +div.navbar-inner { border-bottom: 1px solid #212121; border-left: 1px solid #212121; border-right: 1px solid #212121; border-top:0px} .adminlist tr > td { diff --git a/page.php b/page.php index ef19fcd8b..8e108d86d 100644 --- a/page.php +++ b/page.php @@ -743,11 +743,11 @@ class pageClass $frm = e107::getForm(); $extend->caption = LAN_PAGE_8; $extend->label = LAN_PAGE_9; - $extend->password = $frm->password('page_pw'); + $extend->password = $frm->password('page_pw','',50,'size=xlarge&required=1'); $extend->icon = e_IMAGE_ABS.'generic/password.png'; $extend->submit = $frm->submit('submit_page_pw', LAN_PAGE_10); // FIXME - add form open/close e_form methods - $extend->form_open = '
'; + $extend->form_open = ''; $extend->form_close = '
'; $template = $tp->parseTemplate($this->template['start'], true).$this->template['authorize'].$tp->parseTemplate($this->template['end'] ,true); $this->renderMode = 'cpage-authorize'; @@ -952,6 +952,8 @@ class pageClass if(isset($_POST['submit_page_pw'])) { + + if($_POST['page_pw'] == $page_password) { $this->setPageCookie();