summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2012-01-07 08:21:00 -0800
committerLuke Shumaker <LukeShu@sbcglobal.net>2012-01-07 10:20:28 -0800
commit464f4d3497617fadb9d7752868f1175849cfa6d2 (patch)
tree0771bd935b30971bf2c244b6f158ed7496b644e5 /src/models
parent3d64793a1ee45857856be1cd71c3a0a040a3e869 (diff)
Refactor to separate the framework from the app; drop message stuff, this app is just user management. Add a json view for individual usersHEADmaster
Diffstat (limited to 'src/models')
-rw-r--r--src/models/Auth.class.php157
-rw-r--r--src/models/ContactMethod.class.php29
-rw-r--r--src/models/Group.class.php23
-rw-r--r--src/models/User.class.php25
4 files changed, 0 insertions, 234 deletions
diff --git a/src/models/Auth.class.php b/src/models/Auth.class.php
deleted file mode 100644
index 39f627e..0000000
--- a/src/models/Auth.class.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-require_once('Model.class.php');
-require_once('Login.class.php');
-require_once('Database.class.php');
-
-require_once('Group.class.php');
-require_once('User.class.php');
-
-class Auth extends Model {
- /**********************************************************************\
- * Multiton stuff *
- \**********************************************************************/
- private static $users = array();
- public static function getInstance($uid) {
- if (!isset(self::$users[$uid])) {
- $type = Database::getInstance()->getStatus($uid);
- switch ($type) {
- case 0: // unactivated user
- case 1: // user
- case 2: $obj = new User($uid); // admin
- case 3: $obj = new Group($uid);
- case 4: $obj = new Auth($uid); // deleted
- }
- self::$users[$uid] = $obj;
- }
- return self::$users[$uid];
- }
-
- /**********************************************************************\
- * Static stuff *
- \**********************************************************************/
- public static function isNameLegal($name) {
- // Current rules:
- // * Not in "$illegal_names"
- // * Does not contain '.'
- // * Fewer than 256 characters
- $illegal_names = array('', 'new', 'index', 'all');
- return true
- && (!in_array($name, $illegal_names))
- && (strpos($name,'.')===false)
- && (strpos($name,'!')===false)
- && (strlen($name)<256);
- }
-
- /**********************************************************************\
- * Class stuff *
- \**********************************************************************/
- protected $uid = false;
- public function __construct($uid) {
- parent::__construct();
- $this->uid = $uid;
- }
- public function getUID() {
- return $this->uid;
- }
-
- /**********************************************************************\
- * The 'auth' table. *
- \**********************************************************************/
-
- // Row Type ////////////////////////////////////////////////////////////
- /**
- * @return 0=unverified 1=user 2=admin 3=group 4=deleted
- */
- protected function getType() {
- $type = $this->db->getStatus($this->uid);
- return $type;
- }
- protected function setType($type) {
- $logged_in_uid = Login::isLoggedIn();
- $logged_in_obj = Auth::getInstance($logged_in_uid);
- $is_admin = $logged_in_obj->isAdmin();
- if (!$is_admin) return false;
- return $this->db->setStatus($this->uid, $type);
- }
- public function isUser() {
- $type = $this->getType();
- return ($type===1) || ($type===2);
- }
- public function isAdmin() {
- $type = $this->getType();
- return ($type===2);
- }
- public function isGroup() {
- $type = $this->getType();
- return ($type===3);
- }
- public function setUser($is_user) {
- $is_user = ($is_user?true:false);
- if ($this->isUser() != $is_user) {
- $this->setType($is_user?1:0);
- }
- }
- public function setAdmin($is_admin) {
- $is_admin = ($is_admin?true:false);
- $is_user = $this->isUser();
- $this->setType($is_admin?2:($is_user?1:0));
- }
- public function delete() {
- $this->setType(4);
- }
-
- // Permissions /////////////////////////////////////////////////////////
- public function canRead() {
- $logged_in_uid = Login::isLoggedIn();
- $is_me = ($logged_in_uid === $this->uid);
-
- $logged_in_obj = Auth::getInstance($logged_in_uid);
- $is_user = $logged_in_obj->isUser();
-
- return ($is_me || $is_user);
- }
- public function canEdit() {
- $logged_in_uid = Login::isLoggedIn();
- $is_me = ($logged_in_uid === $this->uid);
-
- $logged_in_obj = Auth::getInstance($logged_in_uid);
- $is_admin = $logged_in_obj->isAdmin();
-
- return ($is_me || $is_admin);
- }
-
- // [user|group]name ////////////////////////////////////////////////////
- public function getName() {
- if ($this->db===null) {
- return false;
- } else {
- return $this->db->getUsername($this->uid);
- }
- }
- public function setName($new_name) {
- if (!$this->canEdit()) return false;
- if (!self::isNameLegal($new_name)) return false;
- return $this->db->setUsername($this->uid, $new_name);
- }
-
- /**********************************************************************\
- * The 'users' table. *
- \**********************************************************************/
-
- public function getConf($setting) {
- if (!$this->canRead()) return false;
- return $this->db->getUserConf($this->uid, $setting);
- }
- public function setConf($setting, $value) {
- if (!$this->canEdit()) return false;
- return $this->db->setUserConf($this->uid, $setting, $value);
- }
- public function getConfArray($setting) {
- $string = $this->getConf($setting);
- return $this->db->valueToArray($string);
- }
- public function setConfArray($setting, $list) {
- $string = $this->db->arrayToValue($list);
- return $this->setConf($setting, $string);
- }
-}
diff --git a/src/models/ContactMethod.class.php b/src/models/ContactMethod.class.php
deleted file mode 100644
index 1dd40ee..0000000
--- a/src/models/ContactMethod.class.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-global $CONTACT_METHODS;
-if (!isset($CONTACT_METHODS)) {
- $CONTACT_METHODS = array();
-}
-
-class ContactMethod extends Model {
- public $verb_slug = ''; // sms
- public $addr_slug = ''; // phone
- public $verb_text = ''; // text message
- public $addr_text = ''; // phone number
-
- public $handler = null;
-
- public function __construct($verb_slug, $addr_slug,
- $verb_text, $addr_text)
- {
- $this->verb_slug = $verb_slug;
- $this->addr_slug = $addr_slug;
- $this->verb_text = $verb_text;
- $this->addr_text = $addr_text;
-
- global $CONTACT_METHODS;
- $CONTACT_METHODS[$verb_slug] = $this;
- }
- public function setHandler($handler) {
- $this->handler = $handler;
- }
-}
diff --git a/src/models/Group.class.php b/src/models/Group.class.php
deleted file mode 100644
index f981a4f..0000000
--- a/src/models/Group.class.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-require_once('Auth.class.php');
-
-class Group extends Auth {
- public function __construct($uid) {
- parent::__construct($uid);
- }
- public function getUID() {
- return $this->uid;
- }
-
- /**********************************************************************\
- * The 'auth' table. *
- \**********************************************************************/
-
- /**********************************************************************\
- * The 'users' table. *
- \**********************************************************************/
-
- public function getMembers() {
- return $this->db->getUsersInGroup($this->getName());
- }
-}
diff --git a/src/models/User.class.php b/src/models/User.class.php
deleted file mode 100644
index b6dbede..0000000
--- a/src/models/User.class.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-require_once('Auth.class.php');
-
-class User extends Auth {
- public function __construct($uid) {
- parent::__construct($uid);
- }
- public function getUID() {
- return $this->uid;
- }
-
- /**********************************************************************\
- * The 'auth' table. *
- \**********************************************************************/
-
- public function setPassword($password) {
- if (!$this->canEdit()) return false;
- return $this->db->setPassword($this->uid, $password);
- }
-
- /**********************************************************************\
- * The 'users' table. *
- \**********************************************************************/
-
-}