00001 <?php
00012 abstract class AuthModelBase extends SDatabaseModel {
00013 public static $DB_INFO = array(
00014
00015 0 => array(
00016 'host' => 'mysql-be.shodor.org',
00017 'user' => 'adm_db_auth',
00018 'name' => 'db_auth'
00019 ),
00020 'adm_db_auth' => 'DENuX3NJ6CZ',
00021 );
00022
00023 public static $DEPENDENCIES = array(
00024 'AuthConfirmEmail' => array(
00025 'AuthUser' => 'userId'
00026 ),
00027 'AuthGenGroupToPermission' => array(
00028 'AuthPermission' => 'permissionId',
00029 'AuthGenGroup' => 'genGroupId'
00030 ),
00031 'AuthUserToGenGroup' => array(
00032 'AuthUser' => 'userId',
00033 'AuthGenGroup' => 'genGroupId'
00034 ),
00035 'AuthUser' => array(
00036 'AuthHashType' => 'hashTypeId'
00037 ),
00038 'AuthUserConfig' => array(
00039 'AuthUser' => 'userId'
00040 ),
00041 'AuthEmailHeader' => array(
00042 'AuthEmailTemplate' => 'emailTemplateId'
00043 ),
00044 'AuthResetPassword' => array(
00045 'AuthUser' => 'userId'
00046 ),
00047 'AuthUserToPermission' => array(
00048 'AuthPermission' => 'permissionId',
00049 'AuthUser' => 'userId'
00050 ),
00051 'AuthUserToProject' => array(
00052 'AuthUser' => 'userId',
00053 'AuthProject' => 'projectId'
00054 )
00055 );
00056
00057 public static $REVERSE_DEPENDENCIES = array(
00058 'AuthHashType' => array(
00059 'AuthUser' => 'hashTypeId'
00060 ),
00061 'AuthEmailTemplate' => array(
00062 'AuthEmailHeader' => 'emailTemplateId'
00063 ),
00064 'AuthPermission' => array(
00065 'AuthGenGroupToPermission' => 'permissionId',
00066 'AuthUserToPermission' => 'permissionId'
00067 ),
00068 'AuthUser' => array(
00069 'AuthConfirmEmail' => 'userId',
00070 'AuthUserConfig' => 'userId',
00071 'AuthUserToGenGroup' => 'userId',
00072 'AuthResetPassword' => 'userId',
00073 'AuthUserToProject' => 'userId',
00074 'AuthUserToPermission' => 'userId'
00075 ),
00076 'AuthProject' => array(
00077 'AuthUserToProject' => 'projectId'
00078 ),
00079 'AuthGenGroup' => array(
00080 'AuthGenGroupToPermission' => 'genGroupId',
00081 'AuthUserToGenGroup' => 'genGroupId'
00082 )
00083 );
00084
00085 public function __construct() {
00086 parent::__construct();
00087
00088 $this->registerDBI(self::getDBI());
00089
00090
00091 }
00092
00116 public static function init($user = false, $server = false) {
00117 global $auth_DB_INFO;
00118
00119 if(isset($GLOBALS['auth_DB_INFO'])) {
00120 self::$DB_INFO = array_merge(self::$DB_INFO, $GLOBALS['auth_DB_INFO']);
00121 if(isset($GLOBALS['auth_DB_INFO'][0])) {
00122 self::$DB_INFO[0] = array_merge(self::$DB_INFO[0], $GLOBALS['auth_DB_INFO'][0]);
00123 unset(self::$DB_INFO[1]);
00124 }
00125 }
00126
00127 if($user === false) {
00128 if(isset($GLOBALS['auth_DB_USER']))
00129 $user = $GLOBALS['auth_DB_USER'];
00130 else
00131 $user = self::$DB_INFO[0]['user'];
00132 }
00133
00134 if(!isset(self::$DB_INFO[$user])) {
00135 self::setStaticError('Unknown database user "' . $user . '" given!');
00136 return false;
00137 }
00138
00139 $pass = self::$DB_INFO[$user];
00140
00141 if($server === false) {
00142 if(isset($GLOBALS['auth_DB_SERVER']))
00143 $server = $GLOBALS['auth_DB_SERVER'];
00144 else
00145 $server = self::$DB_INFO[0]['host'];
00146 }
00147
00148 $name = self::$DB_INFO[0]['name'];
00149
00150 new DBI2('auth', $server, $name, $user, $pass);
00151
00152
00153
00154 return true;
00155 }
00156
00165 public static function getDBI() {
00166 $dbi = DBI2::getDBI('auth');
00167 if(!$dbi) {
00168 if(!self::init())
00169 return null;
00170 $dbi = DBI2::getDBI('auth');
00171 }
00172 return $dbi;
00173 }
00174 }
00175
00176 ?>