From: <al...@us...> - 2008-09-02 22:50:42
|
Revision: 667 http://sciret.svn.sourceforge.net/sciret/?rev=667&view=rev Author: alpeb Date: 2008-09-02 22:50:31 +0000 (Tue, 02 Sep 2008) Log Message: ----------- added mock db class to pass on to the Users gateway when wanting to build user objects that are not connected to the db Modified Paths: -------------- trunk/index.php trunk/models/User.php Added Paths: ----------- trunk/models/SciretMockDb.php Modified: trunk/index.php =================================================================== --- trunk/index.php 2008-09-02 21:47:53 UTC (rev 666) +++ trunk/index.php 2008-09-02 22:50:31 UTC (rev 667) @@ -95,8 +95,8 @@ Zend_Session::start(); $auth = Zend_Auth::getInstance(); -$users = new Users(); if ($auth->hasIdentity()) { + $users = new Users(); $user = $auth->getStorage()->read(); $user->init(); if ($user->app == 'monkeys') { @@ -109,7 +109,11 @@ // reactivate row as live data $user->setTable($users); } else { - // guest user + // guest user. + // Using mock db because the anonymous user object shouldn't interact with the db + // and there even isn't a db around when installing the app. + $mockDb = new SciretMockDb(); + $users = new Users($mockDb); $user = $users->createRow(); } Added: trunk/models/SciretMockDb.php =================================================================== --- trunk/models/SciretMockDb.php (rev 0) +++ trunk/models/SciretMockDb.php 2008-09-02 22:50:31 UTC (rev 667) @@ -0,0 +1,59 @@ +<?php + +class SciretMockDb extends Zend_Db_Adapter_Abstract +{ + public function __construct($config = false) + { + } + + public function listTables() + { + } + + public function describeTable($tableName, $schemaName = null) + { + if ($tableName == 'users') { + return User::$tableDefinition; + } + } + + protected function _connect() + { + } + + public function closeConnection() + { + } + + public function prepare($sql) + { + } + + public function lastInsertId($tableName = null, $primaryKey = null) + { + } + + protected function _beginTransaction() + { + } + + protected function _commit() + { + } + + protected function _rollBack() + { + } + + public function setFetchMode($mode) + { + } + + public function limit($sql, $count, $offset = 0) + { + } + + public function supportsParameters($type) + { + } +} Modified: trunk/models/User.php =================================================================== --- trunk/models/User.php 2008-09-02 21:47:53 UTC (rev 666) +++ trunk/models/User.php 2008-09-02 22:50:31 UTC (rev 667) @@ -289,4 +289,151 @@ return ($passwordAge > $expirationDays); } + + public static $tableDefinition = array( + 'id' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'id', + 'COLUMN_POSITION' => 1, + 'DATA_TYPE' => 'int', + 'DEFAULT' => NULL, + 'NULLABLE' => false, + 'LENGTH' => NULL, + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => true, + 'PRIMARY_POSITION' => 1, + 'IDENTITY' => true, + ), + 'firstname' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'firstname', + 'COLUMN_POSITION' => 2, + 'DATA_TYPE' => 'varchar', + 'DEFAULT' => '', + 'NULLABLE' => false, + 'LENGTH' => '50', + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'lastname' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'lastname', + 'COLUMN_POSITION' => 3, + 'DATA_TYPE' => 'varchar', + 'DEFAULT' => '', + 'NULLABLE' => false, + 'LENGTH' => '50', + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'username' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'username', + 'COLUMN_POSITION' => 4, + 'DATA_TYPE' => 'varchar', + 'DEFAULT' => '', + 'NULLABLE' => false, + 'LENGTH' => '50', + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'email' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'email', + 'COLUMN_POSITION' => 5, + 'DATA_TYPE' => 'varchar', + 'DEFAULT' => '', + 'NULLABLE' => false, + 'LENGTH' => '100', + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'password' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'password', + 'COLUMN_POSITION' => 6, + 'DATA_TYPE' => 'varchar', + 'DEFAULT' => '', + 'NULLABLE' => false, + 'LENGTH' => '32', + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'password_changed' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'password_changed', + 'COLUMN_POSITION' => 7, + 'DATA_TYPE' => 'date', + 'DEFAULT' => NULL, + 'NULLABLE' => false, + 'LENGTH' => NULL, + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'admin' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'admin', + 'COLUMN_POSITION' => 8, + 'DATA_TYPE' => 'tinyint', + 'DEFAULT' => '0', + 'NULLABLE' => false, + 'LENGTH' => NULL, + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + 'preferences' => array ( + 'SCHEMA_NAME' => NULL, + 'TABLE_NAME' => 'users', + 'COLUMN_NAME' => 'preferences', + 'COLUMN_POSITION' => 9, + 'DATA_TYPE' => 'text', + 'DEFAULT' => NULL, + 'NULLABLE' => false, + 'LENGTH' => NULL, + 'SCALE' => NULL, + 'PRECISION' => NULL, + 'UNSIGNED' => NULL, + 'PRIMARY' => false, + 'PRIMARY_POSITION' => NULL, + 'IDENTITY' => false, + ), + ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |