diff options
| author | Tim Almdal <tnalmdal@shaw.ca> | 2008-11-05 05:32:47 +0000 | 
|---|---|---|
| committer | Tim Almdal <tnalmdal@shaw.ca> | 2008-11-05 05:32:47 +0000 | 
| commit | 3c65b68e1c958190ea6c4ca995019109a6a55865 (patch) | |
| tree | 9a4731cbef922fbb838a1f2e41773ab576f3281b /modules/user | |
| parent | a60944e07d77bcc020bf33934055702dae89b875 (diff) | |
The start of the user module.  At this point, it shows up on the scaffolding screen and you can install and uninstall it.  Which creates the tables, defines 2 groups (adminstrator, registered) and one user (admin).
Diffstat (limited to 'modules/user')
| -rw-r--r-- | modules/user/helpers/user_installer.php | 86 | ||||
| -rw-r--r-- | modules/user/models/group.php | 22 | ||||
| -rw-r--r-- | modules/user/models/user.php | 22 | 
3 files changed, 130 insertions, 0 deletions
| diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php new file mode 100644 index 00000000..d37904ea --- /dev/null +++ b/modules/user/helpers/user_installer.php @@ -0,0 +1,86 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA. + */ +class user_installer { +  public static function install() { +    $db = Database::instance(); +    try { +      $base_version = ORM::factory("module")->where("name", "user")->find()->version; +    } catch (Exception $e) { +      if ($e->getMessage() == "Table modules does not exist in your database.") { +        $base_version = 0; +      } else { +        throw $e; +      } +    } + +    if ($base_version == 0) { +      $db->query("CREATE TABLE IF NOT EXISTS `users` ( +        `id` int(9) NOT NULL auto_increment, +        `logon_name` varchar(255) NOT NULL, +        `name` char(255) NOT NULL, +        `email` int(9) default NULL, +        `external_id` varchar(255) default null, +       PRIMARY KEY (`id`), +       UNIQUE KEY(`logon_name`), +       UNIQUE KEY(`external_id`)) +     ENGINE=InnoDB DEFAULT CHARSET=utf8;"); + +      $db->query("CREATE TABLE IF NOT EXISTS`groups` ( +        `id` int(9) NOT NULL auto_increment, +        `name` char(255) default NULL, +       PRIMARY KEY (`id`), +       UNIQUE KEY(`name`)) +     ENGINE=InnoDB DEFAULT CHARSET=utf8;"); + +      $db->query("CREATE TABLE IF NOT EXISTS `groups_users` ( +        `group_id` int(9) NOT NULL, +        `user_id` int(9) NOT NULL, +       PRIMARY KEY (`group_id`, `user_id`), +       UNIQUE KEY(`user_id`, `group_id`)) +     ENGINE=InnoDB DEFAULT CHARSET=utf8;"); +       +      $user_module = ORM::factory("module")->where("name", "user")->find(); +      $user_module->name = "user"; +      $user_module->version = 1; +      $user_module->save(); + +      $user = ORM::factory("user")->where("logon_name", "admin")->find(); +      $user->logon_name = "admin"; +      $user->name = "Gallery Administrator"; +      $user->save(); + +      foreach (array('administrator', 'registered') as $group_name) { +        $group = ORM::factory("group")->where("name", $group_name)->find(); +        $group->name = $group_name; +        $group->add($user); +        $group->save(); +      } +    } +  } + +  public static function uninstall() { +    $db = Database::instance(); +    $db->query("DROP TABLE IF EXISTS `user`;"); +    $db->query("DROP TABLE IF EXISTS `group`;"); +    $db->query("DROP TABLE IF EXISTS `groups_users`;"); +    $user_module = ORM::factory("module")->where("name", "user")->find(); +    $user_module->delete(); +  } +}
\ No newline at end of file diff --git a/modules/user/models/group.php b/modules/user/models/group.php new file mode 100644 index 00000000..e9943fac --- /dev/null +++ b/modules/user/models/group.php @@ -0,0 +1,22 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA. + */ +class Group_Model extends ORM { +  protected $has_and_belongs_to_many = array('users'); +}
\ No newline at end of file diff --git a/modules/user/models/user.php b/modules/user/models/user.php new file mode 100644 index 00000000..8b48b7e5 --- /dev/null +++ b/modules/user/models/user.php @@ -0,0 +1,22 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA. + */ +class User_Model extends ORM { +  protected $has_and_belongs_to_many = array('groups'); +}
\ No newline at end of file | 
