added AdaptedDatabase class includes reusable code of data adapting
This commit is contained in:
parent
ee22504a9b
commit
78dedd874e
69
includes/AdaptedDatabase.class.php
Normal file
69
includes/AdaptedDatabase.class.php
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* @Author: printempw
|
||||||
|
* @Date: 2016-03-18 16:53:55
|
||||||
|
* @Last Modified by: printempw
|
||||||
|
* @Last Modified time: 2016-03-18 16:55:30
|
||||||
|
*/
|
||||||
|
|
||||||
|
class AdaptedDatabase extends Database implements EncryptInterface, SyncInterface
|
||||||
|
{
|
||||||
|
protected $table_name;
|
||||||
|
protected $column_uname;
|
||||||
|
protected $column_passwd;
|
||||||
|
protected $column_ip;
|
||||||
|
|
||||||
|
function __construct() {
|
||||||
|
parent::__construct();
|
||||||
|
$this->table_name = Config::get('data_table_name');
|
||||||
|
$this->column_uname = Config::get('data_column_uname');
|
||||||
|
$this->column_passwd = Config::get('data_column_passwd');
|
||||||
|
$this->column_ip = Config::get('data_column_ip');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createRecord($username, $password, $ip) {
|
||||||
|
$sql = "INSERT INTO ".$this->table_name." (".$this->column_uname.", ".$this->column_passwd.", ".$this->column_ip.")
|
||||||
|
VALUES ('$username', '$password', '$ip')";
|
||||||
|
return $this->query($sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sync($username) {
|
||||||
|
$exist_in_bs_table = $this->checkRecordExist('username', $username);
|
||||||
|
$exist_in_data_table = ($this->query("SELECT * FROM ".$this->table_name."
|
||||||
|
WHERE ".$this->column_uname."='$username'")->num_rows) ? true : false;
|
||||||
|
|
||||||
|
if ($exist_in_bs_table && !$exist_in_data_table) {
|
||||||
|
$result = $this->select('username', $username);
|
||||||
|
$this->createRecord($username, $result['password'], $result['ip']);
|
||||||
|
return $this->sync($username);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$exist_in_bs_table && $exist_in_data_table) {
|
||||||
|
$result = $this->query("SELECT * FROM ".$this->table_name."
|
||||||
|
WHERE ".$this->column_uname."='$username'")->fetch_array();
|
||||||
|
$this->insert(array(
|
||||||
|
"uname" => $username,
|
||||||
|
"passwd" => $result[$this->column_passwd],
|
||||||
|
"ip" => $result[$this->column_ip]
|
||||||
|
));
|
||||||
|
return $this->sync($username);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!($exist_in_bs_table || $exist_in_data_table))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if ($exist_in_bs_table && $exist_in_data_table) {
|
||||||
|
$passwd1 = $this->select('username', $username)['password'];
|
||||||
|
$passwd2 = $this->query("SELECT * FROM ".$this->table_name."
|
||||||
|
WHERE ".$this->column_uname."='$username'")->fetch_array()[$this->column_passwd];
|
||||||
|
if ($passwd1 == $passwd2) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
// sync password
|
||||||
|
$this->update($username, 'password', $passwd2);
|
||||||
|
return $this->sync($username);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,24 +3,11 @@
|
||||||
* @Author: printempw
|
* @Author: printempw
|
||||||
* @Date: 2016-03-13 11:59:32
|
* @Date: 2016-03-13 11:59:32
|
||||||
* @Last Modified by: printempw
|
* @Last Modified by: printempw
|
||||||
* @Last Modified time: 2016-03-18 16:40:24
|
* @Last Modified time: 2016-03-18 16:55:57
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class AuthmeDatabase extends Database implements EncryptInterface, SyncInterface
|
class AuthmeDatabase extends AdaptedDatabase
|
||||||
{
|
{
|
||||||
protected $table_name;
|
|
||||||
protected $column_uname;
|
|
||||||
protected $column_passwd;
|
|
||||||
protected $column_ip;
|
|
||||||
|
|
||||||
function __construct() {
|
|
||||||
parent::__construct();
|
|
||||||
$this->table_name = Config::get('data_table_name');
|
|
||||||
$this->column_uname = Config::get('data_column_uname');
|
|
||||||
$this->column_passwd = Config::get('data_column_passwd');
|
|
||||||
$this->column_ip = Config::get('data_column_ip');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default SHA256 encryption method for Authme
|
* Default SHA256 encryption method for Authme
|
||||||
*
|
*
|
||||||
|
|
@ -32,49 +19,4 @@ class AuthmeDatabase extends Database implements EncryptInterface, SyncInterface
|
||||||
return $encrypt;
|
return $encrypt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createRecord($username, $password, $ip) {
|
|
||||||
$sql = "INSERT INTO ".$this->table_name." (".$this->column_uname.", ".$this->column_passwd.", ".$this->column_ip.")
|
|
||||||
VALUES ('$username', '$password', '$ip')";
|
|
||||||
return $this->query($sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sync($username) {
|
|
||||||
$exist_in_bs_table = $this->checkRecordExist('username', $username);
|
|
||||||
$exist_in_authme_table = ($this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->num_rows) ? true : false;
|
|
||||||
|
|
||||||
if ($exist_in_bs_table && !$exist_in_authme_table) {
|
|
||||||
$result = $this->select('username', $username);
|
|
||||||
$this->createRecord($username, $result['password'], $result['ip']);
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$exist_in_bs_table && $exist_in_authme_table) {
|
|
||||||
$result = $this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->fetch_array();
|
|
||||||
$this->insert(array(
|
|
||||||
"uname" => $username,
|
|
||||||
"passwd" => $result[$this->column_passwd],
|
|
||||||
"ip" => $result[$this->column_ip]
|
|
||||||
));
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!($exist_in_bs_table || $exist_in_authme_table))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ($exist_in_bs_table && $exist_in_authme_table) {
|
|
||||||
$passwd1 = $this->select('username', $username)['password'];
|
|
||||||
$passwd2 = $this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->fetch_array()[$this->column_passwd];
|
|
||||||
if ($passwd1 == $passwd2) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
// sync password
|
|
||||||
$this->update($username, 'password', $passwd2);
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,24 +3,11 @@
|
||||||
* @Author: printempw
|
* @Author: printempw
|
||||||
* @Date: 2016-03-13 12:15:08
|
* @Date: 2016-03-13 12:15:08
|
||||||
* @Last Modified by: printempw
|
* @Last Modified by: printempw
|
||||||
* @Last Modified time: 2016-03-18 16:41:05
|
* @Last Modified time: 2016-03-18 16:56:29
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class CrazyDatabase extends Database implements EncryptInterface, SyncInterface
|
class CrazyDatabase extends AdaptedDatabase
|
||||||
{
|
{
|
||||||
protected $table_name;
|
|
||||||
protected $column_uname;
|
|
||||||
protected $column_passwd;
|
|
||||||
protected $column_ip;
|
|
||||||
|
|
||||||
function __construct() {
|
|
||||||
parent::__construct();
|
|
||||||
$this->table_name = Config::get('data_table_name');
|
|
||||||
$this->column_uname = Config::get('data_column_uname');
|
|
||||||
$this->column_passwd = Config::get('data_column_passwd');
|
|
||||||
$this->column_ip = Config::get('data_column_ip');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fucking CrazyCrypt1
|
* Fucking CrazyCrypt1
|
||||||
*
|
*
|
||||||
|
|
@ -35,51 +22,4 @@ class CrazyDatabase extends Database implements EncryptInterface, SyncInterface
|
||||||
return $encrypt;
|
return $encrypt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createRecord($username, $password, $ip) {
|
|
||||||
$sql = "INSERT INTO ".$this->table_name." (".$this->column_uname.", ".$this->column_passwd.", ".$this->column_ip.")
|
|
||||||
VALUES ('$username', '$password', '$ip')";
|
|
||||||
return $this->query($sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sync($username) {
|
|
||||||
$exist_in_bs_table = $this->checkRecordExist('username', $username);
|
|
||||||
$exist_in_crazy_table = ($this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->num_rows) ? true : false;
|
|
||||||
|
|
||||||
if ($exist_in_bs_table && !$exist_in_crazy_table) {
|
|
||||||
$result = $this->select('username', $username);
|
|
||||||
$this->createRecord($username, $result['password'], $result['ip']);
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$exist_in_bs_table && $exist_in_crazy_table) {
|
|
||||||
$result = $this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->fetch_array();
|
|
||||||
$this->insert(array(
|
|
||||||
"uname" => $username,
|
|
||||||
"passwd" => $result[$this->column_passwd],
|
|
||||||
"ip" => $result[$this->column_ip]
|
|
||||||
));
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!($exist_in_bs_table || $exist_in_crazy_table))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ($exist_in_bs_table && $exist_in_crazy_table) {
|
|
||||||
$passwd1 = $this->select('username', $username)['password'];
|
|
||||||
$passwd2 = $this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->fetch_array()[$this->column_passwd];
|
|
||||||
if ($passwd1 == $passwd2) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
// sync password
|
|
||||||
$this->update($username, 'password', $passwd2);
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,24 +3,11 @@
|
||||||
* @Author: printempw
|
* @Author: printempw
|
||||||
* @Date: 2016-03-13 14:59:32
|
* @Date: 2016-03-13 14:59:32
|
||||||
* @Last Modified by: printempw
|
* @Last Modified by: printempw
|
||||||
* @Last Modified time: 2016-03-18 16:42:37
|
* @Last Modified time: 2016-03-18 16:56:46
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class DiscuzDatabase extends Database implements EncryptInterface, SyncInterface
|
class DiscuzDatabase extends AdaptedDatabase
|
||||||
{
|
{
|
||||||
protected $table_name;
|
|
||||||
protected $column_uname;
|
|
||||||
protected $column_passwd;
|
|
||||||
protected $column_ip;
|
|
||||||
|
|
||||||
function __construct() {
|
|
||||||
parent::__construct();
|
|
||||||
$this->table_name = Config::get('data_table_name');
|
|
||||||
$this->column_uname = Config::get('data_column_uname');
|
|
||||||
$this->column_passwd = Config::get('data_column_passwd');
|
|
||||||
$this->column_ip = Config::get('data_column_ip');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Discuz's Fucking dynamic salt
|
* Discuz's Fucking dynamic salt
|
||||||
*/
|
*/
|
||||||
|
|
@ -31,50 +18,4 @@ class DiscuzDatabase extends Database implements EncryptInterface, SyncInterface
|
||||||
return $encrypt;
|
return $encrypt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function createRecord($username, $password, $ip) {
|
|
||||||
$sql = "INSERT INTO ".$this->table_name." (".$this->column_uname.", ".$this->column_passwd.", ".$this->column_ip.")
|
|
||||||
VALUES ('$username', '$password', '$ip')";
|
|
||||||
return $this->query($sql);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sync($username) {
|
|
||||||
$exist_in_bs_table = $this->checkRecordExist('username', $username);
|
|
||||||
$exist_in_discuz_table = ($this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->num_rows) ? true : false;
|
|
||||||
|
|
||||||
if ($exist_in_bs_table && !$exist_in_discuz_table) {
|
|
||||||
$result = $this->select('username', $username);
|
|
||||||
$this->createRecord($username, $result['password'], $result['ip']);
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$exist_in_bs_table && $exist_in_discuz_table) {
|
|
||||||
$result = $this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->fetch_array();
|
|
||||||
$this->insert(array(
|
|
||||||
"uname" => $username,
|
|
||||||
"passwd" => $result[$this->column_passwd],
|
|
||||||
"ip" => $result[$this->column_ip]
|
|
||||||
));
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!($exist_in_bs_table || $exist_in_discuz_table))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if ($exist_in_bs_table && $exist_in_discuz_table) {
|
|
||||||
$passwd1 = $this->select('username', $username)['password'];
|
|
||||||
$passwd2 = $this->query("SELECT * FROM ".$this->table_name."
|
|
||||||
WHERE ".$this->column_uname."='$username'")->fetch_array()[$this->column_passwd];
|
|
||||||
if ($passwd1 == $passwd2) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
// sync password
|
|
||||||
$this->update($username, 'password', $passwd2);
|
|
||||||
return $this->sync($username);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user