From 60d35b89929d9029c794f72d6a9c38b676e282f6 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Wed, 30 Sep 2009 07:31:11 -0700 Subject: Use the block_manager to manage site sidebar panels. Fixes ticket #110. * Extend block_manager to handle sidebar blocks. get_available has become get_available_admin_blocks, get_list becomes get_admin_list. * Create new functions get_available_site_blocks which will look for gallery_block get_available_site_blocks. * Refactor sidebar_blocks into a separate function and then call block_manager::get_html(site.sidebar). Convert image_block to use block management instead of theme::sidebar_blocks * Change the block_manager api so that the theme is passed into the get method. convert info to the new sidebar block approach * Convert the user module to use the new sidebar block structure. remove the installers for info and image_block modules. * Convert tag and rss modules to the new sidebar framework. reset the version number to 1 for info and image_block modules. * Change the get_html method to ignore empty blocks and change the individual handlers to return an empty string if no block is generated * Add a warning message if no sidebar blocks are active and provide a link to the admin page that configures the sidebar. --- modules/user/helpers/user_theme.php | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'modules/user/helpers/user_theme.php') diff --git a/modules/user/helpers/user_theme.php b/modules/user/helpers/user_theme.php index 098d87fd..69d63eaf 100644 --- a/modules/user/helpers/user_theme.php +++ b/modules/user/helpers/user_theme.php @@ -33,21 +33,4 @@ class user_theme_Core { return $view->render(); } } - - static function sidebar_blocks($theme) { - $locales = locales::installed(); - foreach ($locales as $locale => $display_name) { - $locales[$locale] = SafeString::of_safe_html($display_name); - } - if (count($locales) > 1) { - $block = new Block(); - $block->css_id = "gUserLanguageBlock"; - $block->title = t("Language Preference"); - $block->content = new View("user_languages_block.html"); - $block->content->installed_locales = - array_merge(array("" => t("« none »")), $locales); - $block->content->selected = (string) user::cookie_locale(); - return $block; - } - } } -- cgit v1.2.3 From 1c313e9d2da84a9dd839ea6a4910cdf6809007fb Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Tue, 13 Oct 2009 12:46:27 -0700 Subject: Continue to refactor locale and gallery3 ui from the user module to the gallery module --- modules/gallery/helpers/gallery_theme.php | 13 +++++++++++ modules/user/helpers/user_theme.php | 36 ------------------------------- 2 files changed, 13 insertions(+), 36 deletions(-) delete mode 100644 modules/user/helpers/user_theme.php (limited to 'modules/user/helpers/user_theme.php') diff --git a/modules/gallery/helpers/gallery_theme.php b/modules/gallery/helpers/gallery_theme.php index 20dfeb04..a342b4bd 100644 --- a/modules/gallery/helpers/gallery_theme.php +++ b/modules/gallery/helpers/gallery_theme.php @@ -37,6 +37,11 @@ class gallery_theme_Core { } } + if (count(locales::installed())) { + // Needed by the languages block + $theme->script("jquery.cookie.js"); + } + if ($session->get("l10n_mode", false)) { $theme->css("l10n_client.css"); $theme->script("jquery.cookie.js"); @@ -46,6 +51,14 @@ class gallery_theme_Core { return $buf; } + static function header_top($theme) { + if ($theme->page_type != "login") { + $view = new View("login.html"); + $view->user = user::active(); + return $view->render(); + } + } + static function admin_head($theme) { $theme->script("gallery.panel.js"); $session = Session::instance(); diff --git a/modules/user/helpers/user_theme.php b/modules/user/helpers/user_theme.php deleted file mode 100644 index 69d63eaf..00000000 --- a/modules/user/helpers/user_theme.php +++ /dev/null @@ -1,36 +0,0 @@ -script("jquery.cookie.js"); - } - return ""; - } - - static function header_top($theme) { - if ($theme->page_type != "login") { - $view = new View("login.html"); - $view->user = user::active(); - return $view->render(); - } - } -} -- cgit v1.2.3 From 38141865926730506f55b62a499cb548b94d4bfe Mon Sep 17 00:00:00 2001 From: Chad Kieffer Date: Fri, 23 Oct 2009 22:25:36 -0600 Subject: Created user.css. Moved user-related form css to the new sheet. --- modules/user/controllers/admin_users.php | 3 +-- modules/user/controllers/users.php | 1 - modules/user/css/user.css | 7 +++++++ modules/user/helpers/user.php | 2 +- modules/user/helpers/user_theme.php | 28 ++++++++++++++++++++++++++++ 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 modules/user/css/user.css create mode 100644 modules/user/helpers/user_theme.php (limited to 'modules/user/helpers/user_theme.php') diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index 5950c358..a34d152a 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -313,7 +313,6 @@ class Admin_Users_Controller extends Admin_Controller { static function _get_user_add_form_admin() { $form = new Forge("admin/users/add_user", "", "post", array("id" => "g-add-user-form")); - $form->set_attr('class', "g-narrow"); $group = $form->group("add_user")->label(t("Add User")); $group->input("name")->label(t("Username"))->id("g-username") ->error_messages("in_use", t("There is already a user with that username")); @@ -372,7 +371,7 @@ class Admin_Users_Controller extends Admin_Controller { private function _get_group_add_form_admin() { $form = new Forge("admin/users/add_group", "", "post", array("id" => "g-add-group-form")); - $form->set_attr('class', "g-narrow"); + $form->set_attr('class', "g-one-quarter"); $form_group = $form->group("add_group")->label(t("Add Group")); $form_group->input("name")->label(t("Name"))->id("g-name"); $form_group->inputs["name"]->error_messages( diff --git a/modules/user/controllers/users.php b/modules/user/controllers/users.php index b03a47cc..2be49065 100644 --- a/modules/user/controllers/users.php +++ b/modules/user/controllers/users.php @@ -68,7 +68,6 @@ class Users_Controller extends Controller { private function _get_edit_form($user) { $form = new Forge("users/update/$user->id", "", "post", array("id" => "g-edit-user-form")); - $form->set_attr("class", "g-narrow"); $group = $form->group("edit_user")->label(t("Edit User: %name", array("name" => $user->name))); $group->input("full_name")->label(t("Full Name"))->id("g-fullname")->value($user->full_name); self::_add_locale_dropdown($group, $user); diff --git a/modules/user/css/user.css b/modules/user/css/user.css new file mode 100644 index 00000000..aa21f9c3 --- /dev/null +++ b/modules/user/css/user.css @@ -0,0 +1,7 @@ +#g-login-form, +#g-add-user-form +#g-edit-user-form, +#g-delete-user-form, +#g-user-admin { + width: 270px; +} \ No newline at end of file diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index e7e75d64..47f57d3d 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -26,7 +26,7 @@ class user_Core { static function get_login_form($url) { $form = new Forge($url, "", "post", array("id" => "g-login-form")); - $form->set_attr('class', "g-narrow"); + $form->set_attr('class', "g-one-quarter"); $group = $form->group("login")->label(t("Login")); $group->input("name")->label(t("Username"))->id("g-username")->class(null); $group->password("password")->label(t("Password"))->id("g-password")->class(null); diff --git a/modules/user/helpers/user_theme.php b/modules/user/helpers/user_theme.php new file mode 100644 index 00000000..191fd15a --- /dev/null +++ b/modules/user/helpers/user_theme.php @@ -0,0 +1,28 @@ +css("user.css"); + } + + static function admin_head($theme) { + $theme->css("user.css"); + } +} \ No newline at end of file -- cgit v1.2.3 From 1347a300509b2ab3083bb88193987c18b33187ad Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Tue, 27 Oct 2009 12:23:48 -0700 Subject: Add a password strength meter. --- modules/user/controllers/admin_users.php | 13 +++++++---- modules/user/controllers/password.php | 11 +++++---- modules/user/controllers/users.php | 4 +++- modules/user/css/progressImg1.png | Bin 0 -> 390 bytes modules/user/css/user.css | 36 ++++++++++++++++++++++++++++ modules/user/helpers/user_theme.php | 2 ++ modules/user/js/password_strength.js | 39 +++++++++++++++++++++++++++++++ modules/user/views/user_form.html.php | 7 ++++++ 8 files changed, 101 insertions(+), 11 deletions(-) create mode 100644 modules/user/css/progressImg1.png create mode 100644 modules/user/js/password_strength.js create mode 100644 modules/user/views/user_form.html.php (limited to 'modules/user/helpers/user_theme.php') diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index 55a525ba..ac5dc33c 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -63,7 +63,9 @@ class Admin_Users_Controller extends Admin_Controller { } public function add_user_form() { - print $this->_get_user_add_form_admin(); + $v = new View("user_form.html"); + $v->form = $this->_get_user_add_form_admin(); + print $v; } public function delete_user($id) { @@ -156,12 +158,13 @@ class Admin_Users_Controller extends Admin_Controller { kohana::show_404(); } - $form = $this->_get_user_edit_form_admin($user); + $v = new View("user_form.html"); + $v->form = $this->_get_user_edit_form_admin($user); // Don't allow the user to control their own admin bit, else you can lock yourself out if ($user->id == identity::active_user()->id) { - $form->edit_user->admin->disabled(1); + $v->form->edit_user->admin->disabled(1); } - print $form; + print $v; } public function add_user_to_group($user_id, $group_id) { @@ -330,7 +333,7 @@ class Admin_Users_Controller extends Admin_Controller { $form->add_rules_from(ORM::factory("user")); $minimum_length = module::get_var("user", "mininum_password_length", 5); - $form->edit_user->password + $form->add_user->password ->rules($minimum_length ? "length[$minimum_length, 40]" : "length[40]"); module::event("user_add_form_admin", $user, $form); diff --git a/modules/user/controllers/password.php b/modules/user/controllers/password.php index 888fb37d..5f36b554 100644 --- a/modules/user/controllers/password.php +++ b/modules/user/controllers/password.php @@ -32,7 +32,7 @@ class Password_Controller extends Controller { if (request::method() == "post") { $this->_change_password(); } else { - $user = user::lookup_user_by_field("hash", Input::instance()->get("key")); + $user = user::lookup_by_hash(Input::instance()->get("key")); if (!empty($user)) { print $this->_new_password_form($user->hash); } else { @@ -46,7 +46,7 @@ class Password_Controller extends Controller { $valid = $form->validate(); if ($valid) { - $user = identity::lookup_user_by_name($form->reset->inputs["name"]->value); + $user = user::lookup_by_name($form->reset->inputs["name"]->value); if (!$user->loaded || empty($user->email)) { $form->reset->inputs["name"]->add_error("no_email", 1); $valid = false; @@ -110,19 +110,20 @@ class Password_Controller extends Controller { "mistyped", t("The password and the confirm password must match")); $group->submit("")->value(t("Update")); - $template->content = $form; + $template->content = new View("user_form.html"); + $template->content->form = $form; return $template; } private function _change_password() { $view = $this->_new_password_form(); - if ($view->content->validate()) { + if ($view->content->form->validate()) { $user = user::lookup_by_hash(Input::instance()->post("hash")); if (empty($user)) { throw new Exception("@todo FORBIDDEN", 503); } - $user->password = $view->content->reset->password->value; + $user->password = $view->content->form->reset->password->value; $user->hash = null; $user->save(); message::success(t("Password reset successfully")); diff --git a/modules/user/controllers/users.php b/modules/user/controllers/users.php index 3507ec6d..7bcc74d7 100644 --- a/modules/user/controllers/users.php +++ b/modules/user/controllers/users.php @@ -63,7 +63,9 @@ class Users_Controller extends Controller { access::forbidden(); } - print $this->_get_edit_form($user); + $v = new View("user_form.html"); + $v->form = $this->_get_edit_form($user); + print $v; } private function _get_edit_form($user) { diff --git a/modules/user/css/progressImg1.png b/modules/user/css/progressImg1.png new file mode 100644 index 00000000..a9093647 Binary files /dev/null and b/modules/user/css/progressImg1.png differ diff --git a/modules/user/css/user.css b/modules/user/css/user.css index 3b5e7ac2..67d4f196 100644 --- a/modules/user/css/user.css +++ b/modules/user/css/user.css @@ -54,3 +54,39 @@ li.g-group .g-user .g-button { li.g-default-group h4, li.g-default-group .g-user { color: gray; } + +.g-password-strength0 { + background: url(progressImg1.png) no-repeat 0 0; + width: 138px; + height: 7px; +} +.g-password-strength10 { + background-position:0 -7px; +} +.g-password-strength20 { + background-position:0 -14px; +} +.g-password-strength30 { + background-position:0 -21px; +} +.g-password-strength40 { + background-position:0 -28px; +} +.g-password-strength50 { + background-position:0 -35px; +} +.g-password-strength60 { + background-position:0 -42px; +} +.g-password-strength70 { + background-position:0 -49px; +} +.g-password-strength80 { + background-position:0 -56px; +} +.g-password-strength90 { + background-position:0 -63px; +} +.g-password-strength100 { + background-position:0 -70px; +} diff --git a/modules/user/helpers/user_theme.php b/modules/user/helpers/user_theme.php index 191fd15a..31e2e8c0 100644 --- a/modules/user/helpers/user_theme.php +++ b/modules/user/helpers/user_theme.php @@ -20,9 +20,11 @@ class user_theme_Core { static function head($theme) { $theme->css("user.css"); + $theme->script("password_strength.js"); } static function admin_head($theme) { $theme->css("user.css"); + $theme->script("password_strength.js"); } } \ No newline at end of file diff --git a/modules/user/js/password_strength.js b/modules/user/js/password_strength.js new file mode 100644 index 00000000..2442b8de --- /dev/null +++ b/modules/user/js/password_strength.js @@ -0,0 +1,39 @@ +(function($) { + // Based on the Password Strength Indictor By Benjamin Sterling + // http://benjaminsterling.com/password-strength-indicator-and-generator/ + $.widget("ui.user_password_strength", { + _init: function() { + var self = this; + $(this.element).keyup(function() { + var strength = self.calculateStrength (this.value); + var index = Math.min(Math.floor( strength / 10 ), 10); + $("#g-password-gauge") + .removeAttr('class') + .addClass( "g-password-strength0" ) + .addClass( self.options.classes[ index ] ); + }).after("
"); + }, + + calculateStrength: function(value) { + // Factor in the length of the password + var strength = Math.min(5, value.length) * 10 - 20; + // Factor in the number of numbers + strength += Math.min(3, value.length - value.replace(/[0-9]/g,"").length) * 10; + // Factor in the number of non word characters + strength += Math.min(3, value.length - value.replace(/\W/g,"").length) * 15; + // Factor in the number of Upper case letters + strength += Math.min(3, value.length - value.replace(/[A-Z]/g,"").length) * 10; + + // Normalizxe between 0 and 100 + return Math.max(0, Math.min(100, strength)); + } + }); + $.extend($.ui.user_password_strength, { + defaults: { + classes : ['g-password-strength10', 'g-password-strength20', 'g-password-strength30', + 'g-password-strength40', 'g-password-strength50', 'g-password-strength60', + 'g-password-strength70',' g-password-strength80',' g-password-strength90', + 'g-password-strength100'] + } + }); + })(jQuery); diff --git a/modules/user/views/user_form.html.php b/modules/user/views/user_form.html.php new file mode 100644 index 00000000..039ae8a5 --- /dev/null +++ b/modules/user/views/user_form.html.php @@ -0,0 +1,7 @@ + + + -- cgit v1.2.3