diff options
Diffstat (limited to 'modules/user')
| -rw-r--r-- | modules/user/helpers/group.php | 12 | ||||
| -rw-r--r-- | modules/user/helpers/user_installer.php | 36 | 
2 files changed, 20 insertions, 28 deletions
| diff --git a/modules/user/helpers/group.php b/modules/user/helpers/group.php index 95daa767..84272b79 100644 --- a/modules/user/helpers/group.php +++ b/modules/user/helpers/group.php @@ -38,6 +38,10 @@ class group_Core {      $group->name = $name;      $group->save(); + +    // Create the view column for this group in the items table. +    Database::instance()->query("ALTER TABLE `items` ADD `view_{$group->id}` BOOLEAN DEFAULT 0"); +      return $group;    } @@ -47,6 +51,12 @@ class group_Core {     * @param string $name the group name     */    static function delete($name) { -    ORM::factory("group")->where("name", $name)->find()->delete(); +    $group = ORM::factory("group")->where("name", $name)->find(); + +    if ($group->loaded) { +      // Drop the view column for this group in the items table. +      Database::instance()->query("ALTER TABLE `items` DROP `view_{$group->id}`"); +      $group->delete(); +    }    }  }
\ No newline at end of file diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index 1ba2e866..d3976e80 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -39,7 +39,7 @@ class user_installer {            UNIQUE KEY(`display_name`))          ENGINE=InnoDB DEFAULT CHARSET=utf8;"); -      $db->query("CREATE TABLE IF NOT EXISTS`groups` ( +      $db->query("CREATE TABLE IF NOT EXISTS `groups` (            `id` int(9) NOT NULL auto_increment,            `name` char(255) default NULL,            PRIMARY KEY (`id`), @@ -55,34 +55,16 @@ class user_installer {        module::set_version("user", 1); -      $user = ORM::factory("user")->where("name", "admin")->find(); -      $user->name = "admin"; -      $user->display_name = "Gallery Administrator"; -      $user->password = "admin"; -      $user->save(); -      $id = $user->id; +      // @todo: get this info from the installer +      $admin = user::create("admin", "Gallery Administrator", "admin"); +      $user = user::create("joe", "Joe User", "joe"); -      $db->query("UPDATE `items` SET `owner_id` = $id WHERE `owner_id` IS NULL"); +      $registered = group::create("Registered Users"); +      $registered->add($admin); +      $registered->add($user); -      foreach (array("administrator", "registered") as $group_name) { -        $group = ORM::factory("group")->where("name", $group_name)->find(); -        $group->name = $group_name; -        $group->save(); -        if (!$group->add($user)) { -          throw new Exception("@todo {$user->name} WAS_NOT_ADDED_TO {$group_name}"); -        } -      } - -      // @todo: get this name from the installer. -      $user = ORM::factory("user")->where("name", "joe")->find(); -      $user->name = "joe"; -      $user->display_name = "Registered User"; -      $user->password = "joe"; -      $user->save(); -      $group = ORM::factory("group")->where("name", "registered")->find(); -      if (!$group->add($user)) { -        throw new Exception("@todo {$user->name} WAS_NOT_ADDED_TO {$group_name}"); -      } +      // Let the admin own everything +      $db->query("UPDATE `items` SET `owner_id` = {$admin->id} WHERE `owner_id` IS NULL");      }    } | 
