|
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.
|