From 2aaa6cc68f84f316a70193ed88f5a942f6d8ecfb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Skej=C3=B8?= Date: Sat, 11 Jul 2009 18:47:28 +0200 Subject: [PATCH] User: Prepared module for porting to new AOOSModel --- modules/User/User.php | 235 ++++++++++++++++---------------------------------- 1 file changed, 74 insertions(+), 161 deletions(-) rewrite modules/User/User.php (97%) diff --git a/modules/User/User.php b/modules/User/User.php dissimilarity index 97% index 0159be9..cb7c589 100644 --- a/modules/User/User.php +++ b/modules/User/User.php @@ -1,161 +1,74 @@ - 1, - "user" => 2, - "moderator" => 4, - "admin" => 8 - ); - private $_groups = array(); - - private $_username = "Guest"; - private $_password = null; - private $_email = null; - - private $_loggedIn = false; - - public function show() { - $r = $this->core()->getModule("Reciever"); - $p = $this->core()->getModule("Paginator"); - require_once("UserHandler.php"); - $handler = new UserHandler($this->core()); - - if ($p->numOptions() > 0) { - switch (array_shift($p->options())) { - case("create"): - if (!$r->getModel("POST")) { - return '
- Brugernavn:
- Kodeord:
- E-mail:
- -
'; - } - else { - $m = $r->getModel("POST"); - if (!$handler->createUser($m)) { - return 'Creation failed!'; - } - return 'User created'; - } - break; - case("activate"): - if (!$r->getModel("POST")) { - return '
- Brugernavn:
- Kodeord:
- -
'; - } - else { - $m = $r->getModel("POST"); - if (!$handler->activateUser($m)) { - return 'Activation failed!'; - } - return 'User activated'; - } - break; - default: - break; - } - } - - if (!$this->loggedIn()) { - if (!$r->getModel("POST")) { - return ' -
- Brugernavn:
- Kodeord:
- Opret -
'; - } - else { - $m = $r->getModel("POST"); - if (!$handler->login($m)) { - return "Login failed!"; - } - } - } - else { - return "Logged in as ".$this->username(); - } - } - - public function setUsername($username) - { - $this->_username = $username; - return true; - } - - public function setPassword($password) - { - $this->_password = $password; - return true; - } - - public function setEmail($email) - { - $this->_email = $email; - return true; - } - - public function username() { return $this->_username; } - public function password() { return $this->_password; } - public function email() { return $this->_email; } - - public function addToGroup($group) { - $this->_groups[] = $group; - return true; - } - - public function setGroups($groups) { - $this->_groups = $groups; - return true; - } - - public function checkGroup($group) { - if (!in_array($group, $this->_groups)) { - return false; - } - return true; - } - - public function setLevel($level) { - $this->_accessLevel = $level; - return true; - } - - public function checkLevel($level) { - if ($this->_levels[$level] > $this->_accessLevel) { - return false; - } - return true; - } - - public function setLoggedIn($state) { - if (!is_bool($state)) { - throw new AOOSException($this->core(), $this->tr("not_bool"), "", true, 1); - return false; - } - $this->_loggedIn = $state; - } - - public function loggedIn() { - return $this->_loggedIn; - } -} -?> +core()); + $m1->setColumnIndex("username", "password", "email", "signature", "avatar", "active", "activationcode", "joined", "status"); + $m1->setProperties("username", AOOSMODEL_TYPE_STRING, AOOSMODEL_FLAG_FROM_DATABASE, AOOSMODEL_PROP_ESCAPE|AOOSMODEL_PROP_NOHTML|AOOSMODEL_PROP_STRIP); + $m1->addConstraint("username", "Match", "/[a-zA-Z0-9-_]+/"); + $m1->addConstraint("username", "Length", 50); + $m1->setProperties("password", AOOSMODEL_TYPE_STRING, AOOSMODEL_FLAG_FROM_DATABASE, AOOSMODEL_PROP_HASH|AOOSMODEL_PROP_STRIP); + $m1->setProperties("email", AOOSMODEL_TYPE_STRING, AOOSMODEL_FLAG_FROM_DATABASE, AOOSMODEL_PROP_ESCAPE|AOOSMODEL_PROP_NOHTML|AOOSMODEL_PROP_STRIP); + $m1->addConstraint("email", "Match", "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/"); // Match email + $m1->setProperties("signature", AOOSMODEL_TYPE_TEXT, AOOSMODEL_FLAG_FROM_DATABASE, AOOSMODEL_PROP_ESCAPE|AOOSMODEL_PROP_NOHTML); + $m1->addConstraint("signature", "Length", 256); + // XXX $m1->setProperties("avatar", AOOSMODEL_TYPE_STRING, AOOSMODEL_FLAG_FROM_DATABASE, AOOSMODEL_PROP_ESCAPE); + $m1->setProperties("active", AOOSMODEL_TYPE_BOOLEAN, AOOSMODEL_FLAG_FROM_DATABASE|AOOSMODEL_FLAG_GUI_PRIVATE); + $m1->setProperties("activationcode", AOOSMODEL_TYPE_INTEGER, AOOSMODEL_FLAG_FROM_DATABASE); + $m1->setProperties("joined", AOOSMODEL_TYPE_INTEGER, AOOSMODEL_FLAG_FROM_DATABASE, AOOSMODEL_PROP_TIME); + $m1->setProperties("status", AOOSMODEL_TYPE_INTEGER, AOOSMODEL_FLAG_FROM_DATABASE); // AOOSMODEL_TYPE_ENUM + + // All users. Only the most important fields are fetched here + $m2 = new AOOSModel($this->core()); + $m2->setColumnIndex("uid", "username"); + $m2->setProperties("uid", AOOSMODEL_TYPE_INTEGER, AOOSMODEL_FLAG_FROM_DATABASE|AOOSMODEL_FLAG_PRIMARY_KEY); + $m2->setProperties("username", AOOSMODEL_TYPE_STRING, AOOSMODEL_FLAG_FROM_DATABASE|AOOSMODEL_FLAG_UNIQUE, AOOSMODEL_PROP_ESCAPE|AOOSMODEL_PROP_NOHTML|AOOSMODEL_PROP_STRIP); + + $a = array("USER" => $m1, "USERLIST" => $m2); + return $a; + } + + public function show() { + $this->dataModel("USERLIST")->populate(); + return null; + } + + public function createUser() { + return null; + } + + public function deleteUser() { + return null; + } + + public function updateUser() { + return null; + } + + public function activateUser() { + return null; + } + + public function login() { + return null; + } +} +?> -- 2.11.4.GIT