diff options
Diffstat (limited to 'modules/user')
-rw-r--r-- | modules/user/controllers/admin_users.php | 9 | ||||
-rw-r--r-- | modules/user/helpers/group.php | 8 | ||||
-rw-r--r-- | modules/user/helpers/user.php | 14 | ||||
-rw-r--r-- | modules/user/libraries/drivers/IdentityProvider/Gallery.php | 9 | ||||
-rw-r--r-- | modules/user/models/user.php | 4 | ||||
-rw-r--r-- | modules/user/views/admin_users.html.php | 4 | ||||
-rw-r--r-- | modules/user/views/admin_users_delete_user.html.php | 7 |
7 files changed, 42 insertions, 13 deletions
diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index 24478aa5..c22fcc2e 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -95,7 +95,10 @@ class Admin_Users_Controller extends Admin_Controller { if (empty($user)) { throw new Kohana_404_Exception(); } - print $this->_get_user_delete_form_admin($user); + $v = new View("admin_users_delete_user.html"); + $v->user = $user; + $v->form = $this->_get_user_delete_form_admin($user); + print $v; } public function edit_user($id) { @@ -364,8 +367,8 @@ class Admin_Users_Controller extends Admin_Controller { $form = new Forge("admin/users/delete_user/$user->id", "", "post", array("id" => "g-delete-user-form")); $group = $form->group("delete_user")->label( - t("Are you sure you want to delete user %name?", array("name" => $user->name))); - $group->submit("")->value(t("Delete user %name", array("name" => $user->name))); + t("Delete user %name?", array("name" => $user->display_name()))); + $group->submit("")->value(t("Delete")); return $form; } diff --git a/modules/user/helpers/group.php b/modules/user/helpers/group.php index c84910f1..88bfac35 100644 --- a/modules/user/helpers/group.php +++ b/modules/user/helpers/group.php @@ -68,13 +68,13 @@ class group_Core { */ private static function _lookup_by_field($field_name, $value) { try { - $user = model_cache::get("group", $value, $field_name); - if ($user->loaded()) { - return $user; + $group = model_cache::get("group", $value, $field_name); + if ($group->loaded()) { + return $group; } } catch (Exception $e) { if (strpos($e->getMessage(), "MISSING_MODEL") === false) { - throw $e; + throw $e; } } return null; diff --git a/modules/user/helpers/user.php b/modules/user/helpers/user.php index 55153263..be50d6d1 100644 --- a/modules/user/helpers/user.php +++ b/modules/user/helpers/user.php @@ -36,6 +36,20 @@ class user_Core { } /** + * Return an admin user. Prefer the currently logged in user, if possible. + * + * @return User_Model + */ + static function admin_user() { + $active = identity::active_user(); + if ($active->admin) { + return $active; + } + + return ORM::factory("user")->where("admin", "=", 1)->order_by("id", "ASC")->find(); + } + + /** * Is the password provided correct? * * @param user User Model diff --git a/modules/user/libraries/drivers/IdentityProvider/Gallery.php b/modules/user/libraries/drivers/IdentityProvider/Gallery.php index 1ed7dd4f..73ac9bd0 100644 --- a/modules/user/libraries/drivers/IdentityProvider/Gallery.php +++ b/modules/user/libraries/drivers/IdentityProvider/Gallery.php @@ -32,7 +32,7 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver { * @see IdentityProvider_Driver::guest. */ public function admin_user() { - return self::lookup_user(2); + return user::admin_user(); } /** @@ -148,9 +148,7 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver { /** * @see IdentityProvider_Driver::add_user_to_group. */ - static function add_user_to_group($user, $group_id) { - $group = self::lookup_group($group_id); - + public function add_user_to_group($user, $group) { $group->add($user); $group->save(); } @@ -158,8 +156,7 @@ class IdentityProvider_Gallery_Driver implements IdentityProvider_Driver { /** * @see IdentityProvider_Driver::remove_user_to_group. */ - static function remove_user_from_group($user, $group_id) { - $group = self::lookup_group_by_name($group_id); + public function remove_user_from_group($user, $group_id) { $group->remove($user); $group->save(); } diff --git a/modules/user/models/user.php b/modules/user/models/user.php index 78d74aa3..b28288be 100644 --- a/modules/user/models/user.php +++ b/modules/user/models/user.php @@ -88,6 +88,10 @@ class User_Model extends ORM implements User_Definition { * @return ORM User_Model */ public function save() { + if ($this->full_name === null) { + $this->full_name = ""; + } + if (!$this->loaded()) { // New user $this->add(group::everybody()); diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index b2526bd8..f067cae8 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -64,6 +64,7 @@ <th><?= t("Full name") ?></th> <th><?= t("Email") ?></th> <th><?= t("Last login") ?></th> + <th><?= t("Albums/Photos") ?></th> <th><?= t("Actions") ?></th> </tr> @@ -87,6 +88,9 @@ <?= ($user->last_login == 0) ? "" : gallery::date($user->last_login) ?> </td> <td> + <?= db::build()->from("items")->where("owner_id", "=", $user->id)->count_records() ?> + </td> + <td> <a href="<?= url::site("admin/users/edit_user_form/$user->id") ?>" open_text="<?= t("Close") ?>" class="g-panel-link g-button ui-state-default ui-corner-all ui-icon-left"> diff --git a/modules/user/views/admin_users_delete_user.html.php b/modules/user/views/admin_users_delete_user.html.php new file mode 100644 index 00000000..44777ae5 --- /dev/null +++ b/modules/user/views/admin_users_delete_user.html.php @@ -0,0 +1,7 @@ +<?php defined("SYSPATH") or die("No direct script access.") ?> +<div id="g-admin-users-delete-user"> + <p> + <?= t("Really delete <b>%name</b>? Any photos, movies or albums owned by this user will transfer ownership to <b>%new_owner</b>.", array("name" => $user->display_name(), "new_owner" => identity::active_user()->display_name())) ?> + </p> + <?= $form ?> +</div> |