mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-17 21:11:39 +00:00
Reworked register
--HG-- branch : quitta-gsoc-2013
This commit is contained in:
parent
e72eac8888
commit
5a163663cc
6 changed files with 155 additions and 66 deletions
|
@ -257,15 +257,12 @@ class Users{
|
||||||
}
|
}
|
||||||
|
|
||||||
function createUser($values){
|
function createUser($values){
|
||||||
$login = $values["name"];
|
|
||||||
$pass = $values["pass"];
|
|
||||||
$email = $values["mail"];
|
|
||||||
|
|
||||||
$webhost = $values["webhost"];
|
$libhost = $values["libhost"];
|
||||||
$webport = $values["webport"];
|
$libport = $values["libport"];
|
||||||
$webdbname = $values["webdbname"];
|
$libdbname = $values["libdbname"];
|
||||||
$webusername = $values["webusername"];
|
$libusername = $values["libusername"];
|
||||||
$webpassword = $values["webpassword"];
|
$libpassword = $values["libpassword"];
|
||||||
|
|
||||||
$shardhost = $values["shardhost"];
|
$shardhost = $values["shardhost"];
|
||||||
$shardport = $values["shardport"];
|
$shardport = $values["shardport"];
|
||||||
|
@ -273,44 +270,29 @@ class Users{
|
||||||
$shardusername = $values["shardusername"];
|
$shardusername = $values["shardusername"];
|
||||||
$shardpassword = $values["shardpassword"];
|
$shardpassword = $values["shardpassword"];
|
||||||
|
|
||||||
$salt = Users::generateSALT();
|
try {
|
||||||
$hashpass = crypt($pass, $salt);
|
//make connection with and put into shard db
|
||||||
|
$dbs = new PDO("mysql:host='127.0.39.3';port=$shardport;dbname=$sharddbname", $shardusername, $shardpassword);
|
||||||
$params = array(
|
$dbs->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
$login,
|
$statement = $dbs->prepare("INSERT INTO user (Login, Password, Email) VALUES (:name, :pass, :mail)");
|
||||||
$hashpass,
|
$statement->execute($values["params"]);
|
||||||
$email
|
return "ok";
|
||||||
);
|
|
||||||
|
|
||||||
try{
|
|
||||||
//make connection with web db
|
|
||||||
$dbw = new PDO("mysql:host=$webhost;port=$webport;dbname=$webdbname", $webusername, $webpassword);
|
|
||||||
$dbw->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
|
|
||||||
//put into web db
|
|
||||||
$statement = $dbw->prepare("INSERT INTO ams_user (Login, Password, Email) VALUES (?, ?, ?)");
|
|
||||||
$statement->execute($params);
|
|
||||||
try {
|
|
||||||
//make connection with and put into shard db
|
|
||||||
$dbs = new PDO("mysql:host=$shardhost;port=$shardport;dbname=$sharddbname", $shardusername, $shardpassword);
|
|
||||||
$dbs->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
||||||
$statement = $dbs->prepare("INSERT INTO user (Login, Password, Email) VALUES (?, ?, ?)");
|
|
||||||
$statement->execute($params);
|
|
||||||
}
|
|
||||||
catch (PDOException $e) {
|
|
||||||
//print_r($e);
|
|
||||||
//oh noooz, the shard is offline! Put in query queue at web db!
|
|
||||||
$params = array("type" => "createUser","query" => json_encode(array($login,$pass,$email)));
|
|
||||||
$statement = $dbw->prepare("INSERT INTO ams_querycache (type, query) VALUES (:type, :query)");
|
|
||||||
$statement->execute($params);
|
|
||||||
}
|
|
||||||
|
|
||||||
}catch (PDOException $e) {
|
|
||||||
//go to error page or something, because can't access website db
|
|
||||||
print_r($e);
|
|
||||||
exit;
|
|
||||||
}
|
}
|
||||||
|
catch (PDOException $e) {
|
||||||
|
//oh noooz, the shard is offline! Put in query queue at ams_lib db!
|
||||||
|
try {
|
||||||
|
$dbl = new PDO("mysql:host=$libhost;port=$libport;dbname=$libdbname", $libusername, $libpassword);
|
||||||
|
$dbl->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
$params = array("type" => "createUser","query" => json_encode(array($values["params"]["name"],$values["params"]["pass"],$values["params"]["mail"])));
|
||||||
|
$statement = $dbl->prepare("INSERT INTO ams_querycache (type, query) VALUES (:type, :query)");
|
||||||
|
$statement->execute($params);
|
||||||
|
return "shardoffline";
|
||||||
|
}catch (PDOException $e) {
|
||||||
|
print_r($e);
|
||||||
|
return "liboffline";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function login($params){
|
public function login($params){
|
||||||
|
|
|
@ -5,21 +5,30 @@
|
||||||
// Variables for database access
|
// Variables for database access
|
||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
// where we can find the mysql database
|
// where we can find the mysql database
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
//the www db
|
||||||
$WEBDBHOST = 'localhost';
|
$WEBDBHOST = 'localhost';
|
||||||
$WEBDBPORT = '3306';
|
$WEBDBPORT = '3306';
|
||||||
$WEBDBNAME = 'ryzom_ams';
|
$WEBDBNAME = 'ryzom_ams';
|
||||||
$WEBDBUSERNAME = 'shard';
|
$WEBDBUSERNAME = 'root';
|
||||||
$WEBDBPASSWORD = '' ;
|
$WEBDBPASSWORD = 'lol123' ;
|
||||||
|
|
||||||
|
//the ams_lib db
|
||||||
|
$LIBDBHOST = 'localhost';
|
||||||
|
$LIBDBPORT = '3306';
|
||||||
|
$LIBDBNAME = 'ryzom_ams_lib';
|
||||||
|
$LIBDBUSERNAME = 'root';
|
||||||
|
$LIBDBPASSWORD = 'lol123' ;
|
||||||
|
|
||||||
|
//the shard db
|
||||||
$SHARDDBHOST = 'localhost' ;
|
$SHARDDBHOST = 'localhost' ;
|
||||||
$SHARDDBPORT = '3306';
|
$SHARDDBPORT = '3306';
|
||||||
$SHARDDBNAME = 'nel' ;
|
$SHARDDBNAME = 'nel' ;
|
||||||
$SHARDDBUSERNAME = 'shard' ;
|
$SHARDDBUSERNAME = 'shard' ;
|
||||||
$SHARDDBPASSWORD = '' ;
|
$SHARDDBPASSWORD = '' ;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// If true= the server will add automatically unknown user in the database
|
// If true= the server will add automatically unknown user in the database
|
||||||
// (in nel.user= nel.permission= ring.ring_user and ring.characters
|
// (in nel.user= nel.permission= ring.ring_user and ring.characters
|
||||||
$ALLOW_UNKNOWN = true ;
|
$ALLOW_UNKNOWN = true ;
|
||||||
|
|
|
@ -31,26 +31,43 @@ function add_user(){
|
||||||
|
|
||||||
|
|
||||||
function write_user($newUser){
|
function write_user($newUser){
|
||||||
|
|
||||||
|
//get the db specifics out of the config file
|
||||||
global $WEBDBHOST;
|
global $WEBDBHOST;
|
||||||
global $WEBDBPORT;
|
global $WEBDBPORT;
|
||||||
global $WEBDBNAME;
|
global $WEBDBNAME;
|
||||||
global $WEBDBUSERNAME;
|
global $WEBDBUSERNAME;
|
||||||
global $WEBDBPASSWORD;
|
global $WEBDBPASSWORD;
|
||||||
|
|
||||||
|
global $LIBDBHOST;
|
||||||
|
global $LIBDBPORT;
|
||||||
|
global $LIBDBNAME;
|
||||||
|
global $LIBDBUSERNAME;
|
||||||
|
global $LIBDBPASSWORD;
|
||||||
|
|
||||||
global $SHARDDBHOST;
|
global $SHARDDBHOST;
|
||||||
global $SHARDDBPORT;
|
global $SHARDDBPORT;
|
||||||
global $SHARDDBNAME;
|
global $SHARDDBNAME;
|
||||||
global $SHARDDBUSERNAME;
|
global $SHARDDBUSERNAME;
|
||||||
global $SHARDDBPASSWORD;
|
global $SHARDDBPASSWORD;
|
||||||
|
|
||||||
$values["name"] = $newUser["name"];
|
//create salt here, because we want it to be the same on the web/server
|
||||||
$values["pass"] = $newUser["pass"];
|
$hashpass = crypt($newUser["pass"], Users::generateSALT());
|
||||||
$values["mail"] = $newUser["mail"];
|
|
||||||
|
|
||||||
$values["webhost"] = $WEBDBHOST;
|
$params = array(
|
||||||
$values["webport"] = $WEBDBPORT;
|
'name' => $newUser["name"],
|
||||||
$values["webdbname"] = $WEBDBNAME;
|
'pass' => $hashpass,
|
||||||
$values["webusername"] = $WEBDBUSERNAME;
|
'mail' => $newUser["mail"]
|
||||||
$values["webpassword"] = $WEBDBPASSWORD ;
|
);
|
||||||
|
|
||||||
|
//print_r($params);
|
||||||
|
//make a $values array for passing all data to the Users::createUser() function.
|
||||||
|
$values["params"] = $params;
|
||||||
|
$values["libhost"] = $LIBDBHOST;
|
||||||
|
$values["libport"] = $LIBDBPORT;
|
||||||
|
$values["libdbname"] = $LIBDBNAME;
|
||||||
|
$values["libusername"] = $LIBDBUSERNAME;
|
||||||
|
$values["libpassword"] = $LIBDBPASSWORD ;
|
||||||
|
|
||||||
$values["shardhost"] = $SHARDDBHOST;
|
$values["shardhost"] = $SHARDDBHOST;
|
||||||
$values["shardport"] = $SHARDDBPORT;
|
$values["shardport"] = $SHARDDBPORT;
|
||||||
|
@ -59,8 +76,21 @@ function write_user($newUser){
|
||||||
$values["shardpassword"] = $SHARDDBPASSWORD;
|
$values["shardpassword"] = $SHARDDBPASSWORD;
|
||||||
|
|
||||||
|
|
||||||
|
//Create the user on the shard + in case shard is offline put copy of query in query db
|
||||||
$result = Users :: createUser($values);
|
$result = Users :: createUser($values);
|
||||||
|
|
||||||
|
try{
|
||||||
|
//make connection with web db and put it in there
|
||||||
|
$dbw = new PDO("mysql:host=$WEBDBHOST;port=$WEBDBPORT;dbname=$WEBDBNAME", $WEBDBUSERNAME, $WEBDBPASSWORD);
|
||||||
|
$dbw->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
$statement = $dbw->prepare("INSERT INTO ams_user (Login, Password, Email) VALUES (:name, :pass, :mail)");
|
||||||
|
$statement->execute($params);
|
||||||
|
|
||||||
|
}catch (PDOException $e) {
|
||||||
|
//go to error page or something, because can't access website db
|
||||||
|
print_r($e);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
print('Awesome');
|
print('Awesome');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ require( '../config.php' );
|
||||||
require( '../../ams_lib/libinclude.php' );
|
require( '../../ams_lib/libinclude.php' );
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
print("[" . $_SESSION['user'] . "] ");
|
//print_r($_SESSION);
|
||||||
|
|
||||||
//Decide what page to load
|
//Decide what page to load
|
||||||
if(isset($_SESSION['user'])){
|
if(isset($_SESSION['user'])){
|
||||||
|
@ -31,8 +31,8 @@ function loadpage ( $page ){
|
||||||
}
|
}
|
||||||
|
|
||||||
//Set permission
|
//Set permission
|
||||||
if(isset($_SESSION['Permission'])){
|
if(isset($_SESSION['permission'])){
|
||||||
$return['permission'] = $_SESSION['Permission'];
|
$return['permission'] = $_SESSION['permission'];
|
||||||
}else{
|
}else{
|
||||||
//default permission
|
//default permission
|
||||||
$return['permission'] = 0;
|
$return['permission'] = 0;
|
||||||
|
@ -45,7 +45,5 @@ if($page == 'login' || $page == 'register'){
|
||||||
}else{
|
}else{
|
||||||
$return['no_visible_elements'] = 'FALSE';
|
$return['no_visible_elements'] = 'FALSE';
|
||||||
}
|
}
|
||||||
|
//print_r($return);
|
||||||
helpers :: loadTemplate( $page , $return );
|
helpers :: loadTemplate( $page , $return );
|
||||||
|
|
||||||
session_destroy();
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
CREATE DATABASE IF NOT EXISTS `ryzom_ams`;
|
CREATE DATABASE IF NOT EXISTS `ryzom_ams`;
|
||||||
USE `ryzom_ams`;
|
USE `ryzom_ams`;
|
||||||
DROP TABLE IF EXISTS ams_user;
|
DROP TABLE IF EXISTS ams_user;
|
||||||
DROP TABLE IF EXISTS ams_querycache;
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `ams_user` (
|
CREATE TABLE IF NOT EXISTS `ams_user` (
|
||||||
`UId` int(10) NOT NULL AUTO_INCREMENT,
|
`UId` int(10) NOT NULL AUTO_INCREMENT,
|
||||||
|
@ -12,6 +11,12 @@ CREATE TABLE IF NOT EXISTS `ams_user` (
|
||||||
PRIMARY KEY (`UId`)
|
PRIMARY KEY (`UId`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='contains all users information for ryzom_ams';
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='contains all users information for ryzom_ams';
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE DATABASE IF NOT EXISTS `ryzom_ams_lib`;
|
||||||
|
USE `ryzom_ams_lib`;
|
||||||
|
DROP TABLE IF EXISTS ams_querycache;
|
||||||
|
|
||||||
CREATE TABLE ams_querycache (
|
CREATE TABLE ams_querycache (
|
||||||
`SID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
`SID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||||
`type` VARCHAR( 64 ) NOT NULL ,
|
`type` VARCHAR( 64 ) NOT NULL ,
|
||||||
|
|
65
code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php
Normal file
65
code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
<?php
|
||||||
|
require( '../../config.php' );
|
||||||
|
ini_set( "display_errors", true );
|
||||||
|
error_reporting( E_ALL );
|
||||||
|
|
||||||
|
global $WEBDBHOST;
|
||||||
|
global $WEBDBUSERNAME;
|
||||||
|
global $WEBDBPASSWORD;
|
||||||
|
|
||||||
|
global $LIBDBHOST;
|
||||||
|
global $LIBDBUSERNAME;
|
||||||
|
global $LIBDBPASSWORD;
|
||||||
|
|
||||||
|
|
||||||
|
try{
|
||||||
|
//SETUP THE WWW DB
|
||||||
|
$dbw = new PDO("mysql:host=$WEBDBHOST;", $WEBDBUSERNAME, $WEBDBPASSWORD);
|
||||||
|
$dbw->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
$sql = "
|
||||||
|
CREATE DATABASE IF NOT EXISTS `ryzom_ams`;
|
||||||
|
USE `ryzom_ams`;
|
||||||
|
DROP TABLE IF EXISTS ams_user;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `ams_user` (
|
||||||
|
`UId` int(10) NOT NULL AUTO_INCREMENT,
|
||||||
|
`Login` varchar(64) NOT NULL DEFAULT '',
|
||||||
|
`Password` varchar(13) DEFAULT NULL,
|
||||||
|
`Email` varchar(255) NOT NULL DEFAULT '',
|
||||||
|
`Permission` int(3) NOT NULL DEFAULT 1,
|
||||||
|
PRIMARY KEY (`UId`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='contains all users information for ryzom_ams';
|
||||||
|
|
||||||
|
);
|
||||||
|
";
|
||||||
|
$statement = $dbw->prepare($sql);
|
||||||
|
$statement->execute();
|
||||||
|
|
||||||
|
//SETUP THE AMS_LIB DB
|
||||||
|
$dbl = new PDO("mysql:host=$LIBDBHOST;", $LIBDBUSERNAME, $LIBDBPASSWORD);
|
||||||
|
$dbl->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
$sql = "
|
||||||
|
CREATE DATABASE IF NOT EXISTS `ryzom_ams_lib`;
|
||||||
|
USE `ryzom_ams_lib`;
|
||||||
|
DROP TABLE IF EXISTS ams_querycache;
|
||||||
|
|
||||||
|
CREATE TABLE ams_querycache (
|
||||||
|
`SID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
|
||||||
|
`type` VARCHAR( 64 ) NOT NULL ,
|
||||||
|
`query` VARCHAR( 512 ) NOT NULL
|
||||||
|
);
|
||||||
|
";
|
||||||
|
$statement = $dbl->prepare($sql);
|
||||||
|
$statement->execute();
|
||||||
|
print('Install completed successful!');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}catch (PDOException $e) {
|
||||||
|
//go to error page or something, because can't access website db
|
||||||
|
print('There was an error while installing');
|
||||||
|
print_r($e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue