private static function _createMigrationClassName($argTblName)
 {
     $migrationName = ORMapper::getGeneratedModelName($argTblName);
     if (strlen($migrationName) - strlen('migration') === strpos(strtolower($migrationName), 'migration')) {
         // 何もしない
     } else {
         $migrationName = $migrationName . "Migration";
     }
     return $migrationName;
 }
예제 #2
0
 /**
  * 登録する
  * @param string DB接続情報
  */
 public static function registration($argID = NULL, $argPass = NULL, $argDSN = NULL)
 {
     if (FALSE === self::$_initialized) {
         self::_init($argDSN);
     }
     $id = $argID;
     $pass = $argPass;
     if (NULL === $id) {
         if (TRUE === class_exists('Flow', FALSE) && isset(Flow::$params) && isset(Flow::$params['post']) && TRUE === is_array(Flow::$params['post']) && isset(Flow::$params['post'][self::$authIDField])) {
             // Flowに格納されているPOSTパラメータを自動で使う
             $id = Flow::$params['post'][self::$authIDField];
         }
         if (isset($_REQUEST) && isset($_REQUEST[self::$authIDField])) {
             // リクエストパラメータから直接受け取る
             $id = $_REQUEST[self::$authIDField];
         }
     }
     if (NULL === $pass) {
         if (TRUE === class_exists('Flow', FALSE) && isset(Flow::$params) && isset(Flow::$params['post']) && TRUE === is_array(Flow::$params['post']) && isset(Flow::$params['post'][self::$authPassField])) {
             // Flowに格納されているPOSTパラメータを自動で使う
             $pass = Flow::$params['post'][self::$authPassField];
         }
         if (isset($_REQUEST) && isset($_REQUEST[self::$authPassField])) {
             // リクエストパラメータから直接受け取る
             $pass = $_REQUEST[self::$authPassField];
         }
     }
     $id = self::_resolveEncrypted($id, self::$authIDEncrypted);
     $pass = self::_resolveEncrypted($pass, self::$authPassEncrypted);
     $gmtDate = Utilities::date('Y-m-d H:i:s', NULL, NULL, 'GMT');
     $query = '`' . self::$authIDField . '` = :' . self::$authIDField . ' AND `' . self::$authPassField . '` = ' . self::$authPassField . ' ';
     $binds = array(self::$authIDField => $id, self::$authPassField => $pass);
     $User = ORMapper::getModel(self::$_DBO, self::$authTable, $query, $binds);
     $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authIDField)))}($id);
     $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authPassField)))}($pass);
     $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authCreatedField)))}($gmtDate);
     $User->{'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', self::$authModifiedField)))}($gmtDate);
     if (TRUE === $User->save()) {
         // ユーザーの登録は完了とみなし、コミットを行う!
         self::$_DBO->commit();
     }
     return $User;
 }
 protected function _getModel($argModel, $argIdentifierORQuery = NULL, $argBinds = NULL, $argDSN = NULL)
 {
     if (NULL !== $argIdentifierORQuery) {
         return ORMapper::getModel(self::_getDBO($argDSN), $argModel, $argIdentifierORQuery, $argBinds);
     } else {
         return ORMapper::getModel(self::_getDBO($argDSN), $argModel);
     }
 }
예제 #4
0
 public static function clear()
 {
     if (FALSE === self::$_initialized) {
         // 自動セッションスタート
         self::_init();
     }
     // 8バイト以下の$_COOKIE[self::$_tokenKeyName]はセットされていてもTOKENとして認めない
     if (isset($_COOKIE[self::$_tokenKeyName]) && strlen($_COOKIE[self::$_tokenKeyName]) > 8) {
         // Cookieが在る場合はCookieからトークンと固有識別子を初期化する
         $token = $_COOKIE[self::$_tokenKeyName];
         // SESSIONレコードを走査
         $binds = array(self::$_sessionPKeyName => $token);
         $Session = ORMapper::getModel(self::$_DBO, self::$_sessionTblName, '`' . self::$_sessionPKeyName . '` = :' . self::$_sessionPKeyName . ' limit 1', $binds);
         if (strlen($Session->{self::$_sessionPKeyName}) > 0) {
             // 該当レコードを削除
             $Session->remove();
         }
         // check無しの$identifierの特定
         $identifier = self::_tokenToIdentifier($token, TRUE);
         if (FALSE !== $identifier && strlen($identifier) > 0) {
             // 該当のSessionDataも削除
             parent::clear($identifier);
         }
         debug('cookie clear!');
         // 二度処理しない為に削除する
         unset($_COOKIE[self::$_tokenKeyName]);
         setcookie(self::$_tokenKeyName, '', time() - 3600);
     }
     return TRUE;
 }
예제 #5
0
 /**
  * identifierに紐づくセッションデータレコードをクリアする
  * @param string セッションデータのプライマリーキー
  * @param int 有効期限の直指定
  * @param mixed DBDSN情報の直指定
  */
 public static function clear($argPKey = NULL, $argExpiredtime = NULL, $argDSN = NULL)
 {
     if (FALSE === self::$_initialized) {
         self::_init($argExpiredtime, $argDSN);
     }
     $binds = array(self::$_sessionDataPKeyName => $argPKey);
     $Session = ORMapper::getModel(self::$_DBO, self::$_sessionDataTblName, '`' . self::$_sessionDataPKeyName . '` = :' . self::$_sessionDataPKeyName . ' limit 1', $binds);
     $Session->remove();
 }