summaryrefslogtreecommitdiff
path: root/modules/user
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user')
-rw-r--r--modules/user/controllers/admin_users.php9
-rw-r--r--modules/user/helpers/group.php8
-rw-r--r--modules/user/helpers/user.php14
-rw-r--r--modules/user/libraries/drivers/IdentityProvider/Gallery.php9
-rw-r--r--modules/user/models/user.php4
-rw-r--r--modules/user/views/admin_users.html.php4
-rw-r--r--modules/user/views/admin_users_delete_user.html.php7
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>