Work on register, prevent duplicate phone numbers in inside
This commit is contained in:
1 parent
b561dc0531
commit
db65328418
5 files changed
+86
-37
No files matched your search
@@ -98,6 +98,17 @@ class User {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* TODO replace +47 and 0047 with blank */
|
||||
//if( $data['phonenumber'] ) {
|
||||
//}
|
||||
|
||||
/* No duplicate phone numbers */
|
||||
if( getUseridFromPhone($data['phonenumber']) !== false ) {
|
||||
notify("Telefonnummeret er allerede registrert på en bruker.");
|
||||
$this->id = -1;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (isset ($data['active'])) {
|
||||
$this->division_id_request = $data['division'];
|
||||
} else {
|
||||
|
||||
@@ -1,12 +1,4 @@
|
||||
<?php
|
||||
set_include_path("../../includes/");
|
||||
require_once("../../inside/credentials.php");
|
||||
require_once("../../inside/functions.php");
|
||||
require_once("../../includes/DB.php");
|
||||
|
||||
require_once("../lib/CryptoHelper.php");
|
||||
require_once("../lib/functions.php");
|
||||
require_once("../config.php");
|
||||
/*
|
||||
* Lookup a members phone number and return a member-like object.
|
||||
*
|
||||
@@ -23,10 +15,21 @@ require_once("../config.php");
|
||||
* "cardno": "12345",
|
||||
* "firstName": "Jon",
|
||||
* "lastName": "Hansen",
|
||||
* "email": "jon@uio.no"
|
||||
* "email": "jon@uio.no",
|
||||
* "registration_status": "partial" // "partial" means show link
|
||||
* }
|
||||
*
|
||||
*/
|
||||
set_include_path("../../includes/");
|
||||
|
||||
require_once("../../inside/credentials.php");
|
||||
require_once("../../inside/functions.php");
|
||||
require_once("../../includes/DB.php");
|
||||
|
||||
require_once("../lib/CryptoHelper.php");
|
||||
require_once("../lib/functions.php");
|
||||
require_once("../config.php");
|
||||
|
||||
$crypt = new CryptoHelper(SNAP_IV, SNAP_KEY);
|
||||
|
||||
/* Checks */
|
||||
|
||||
+39
-25
@@ -1,18 +1,4 @@
|
||||
<?php
|
||||
|
||||
/* Pull in Inside */
|
||||
set_include_path("../../inside/");
|
||||
require_once("functions.php");
|
||||
require_once("User.php");
|
||||
set_include_path("../../includes/");
|
||||
require_once("DB.php");
|
||||
|
||||
/* Our own */
|
||||
require_once("../lib/CryptoHelper.php");
|
||||
require_once("../lib/functions.php");
|
||||
require_once("../config.php");
|
||||
|
||||
|
||||
/*
|
||||
* Registers a user in the user table
|
||||
*
|
||||
@@ -35,7 +21,8 @@ require_once("../config.php");
|
||||
* "membershipNumber": "dsadsa2333",
|
||||
* "firstName": "Jon",
|
||||
* "lastName": "Hansen",
|
||||
* "email": "jon@uio.no"
|
||||
* "email": "jon@uio.no",
|
||||
* "registration_status": "partial" // "partial" or "full"
|
||||
* }
|
||||
*
|
||||
* TODO:
|
||||
@@ -43,6 +30,18 @@ require_once("../config.php");
|
||||
* - return result
|
||||
*/
|
||||
|
||||
/* Pull in Inside */
|
||||
set_include_path("../../inside/");
|
||||
require_once("functions.php");
|
||||
require_once("User.php");
|
||||
set_include_path("../../includes/");
|
||||
require_once("DB.php");
|
||||
|
||||
/* Our own */
|
||||
require_once("../lib/CryptoHelper.php");
|
||||
require_once("../lib/functions.php");
|
||||
require_once("../config.php");
|
||||
|
||||
/* Validate request */
|
||||
$body = file_get_contents('php://input');
|
||||
if(strlen($body) === 0) {
|
||||
@@ -72,20 +71,35 @@ foreach($required_keys as $key) {
|
||||
die();
|
||||
}
|
||||
}
|
||||
// TODO validate phonenumber
|
||||
// TODO validate email
|
||||
// TODO look at getUseridFromPhone in inside/functions.php
|
||||
// TODO when $fromSnappOrder is sent to User-constructor...
|
||||
// ...then work around requirements for username, password, birthdate, address
|
||||
var_dump($data);
|
||||
|
||||
if( !valid_phonenumber($data['phone']) ) {
|
||||
set_response_code(400);
|
||||
echo json_encode(array('error' => 'Not a phone number:'.$data['phone']));
|
||||
die();
|
||||
}
|
||||
if( !valid_email($data['email']) ) {
|
||||
set_response_code(400);
|
||||
echo json_encode(array('error' => 'Not an email: '.$data['email']));
|
||||
die();
|
||||
}
|
||||
/* Existing user? */
|
||||
if( getUseridFromEmail($data['email']) !== false) {
|
||||
set_response_code(409);
|
||||
echo json_encode(array('error' => 'Existing user with email: '.$data['email']));
|
||||
die();
|
||||
}
|
||||
if( getUseridFromPhone($data['phone']) !== false ) {
|
||||
set_response_code(409);
|
||||
echo json_encode(array('error' => 'Existing user with phone: '.$data['phone']));
|
||||
die();
|
||||
}
|
||||
|
||||
/* Create user */
|
||||
//$new_user = new User(NULL, $data);
|
||||
$user_id = add_user($data);
|
||||
|
||||
/* Get and format user */
|
||||
//$user = get_user($new_user->id);
|
||||
|
||||
/* Add back phone number from query */
|
||||
//$user['phone'] = $phone;
|
||||
$user = get_user($user_id);
|
||||
|
||||
/* Return encrypted user object */
|
||||
//echo json_encode($user);
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<?php
|
||||
require_once("../../inside/functions.php");
|
||||
|
||||
/* Set HTTP response code */
|
||||
function set_response_code($code) {
|
||||
if(!is_int($code)) {
|
||||
@@ -7,6 +9,23 @@ function set_response_code($code) {
|
||||
header('X-Ignore-This: something', true, $code);
|
||||
}
|
||||
|
||||
function add_user($data) {
|
||||
global $conn;
|
||||
|
||||
/* TODO validate input */
|
||||
echo json_encode( array('error' => 'not implemented' ) );
|
||||
die();
|
||||
|
||||
// TODO $cols from data
|
||||
$sql = 'INSERT INTO din_user ('.implode($cols, ",").') VALUES ()';
|
||||
|
||||
$res = $conn->query($sql);
|
||||
if( DB::isError($res) ) {
|
||||
echo json_encode( array('error' => 'db_error', 'error_message' => $res->toString() ) );
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
/* Get user object with group ids and membership status */
|
||||
function get_user($user_id) {
|
||||
global $conn;
|
||||
@@ -46,5 +65,7 @@ function get_user($user_id) {
|
||||
function valid_phonenumber($phone) {
|
||||
return is_numeric($phone) && strlen($phone) === 8;
|
||||
}
|
||||
|
||||
function valid_email($email) {
|
||||
return preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email);
|
||||
}
|
||||
?>
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"firstname": "Test",
|
||||
"lastname": "Testesen",
|
||||
"email": "asdf@asdf.com",
|
||||
"phone": "48105886"
|
||||
"email": "asdfasdfz@asdf.com",
|
||||
"phone": "48105887"
|
||||
}
|
||||
Reference in new issue
Block a user