2015-06-28 20:58:51 +00:00
|
|
|
<?php
|
2015-07-15 21:33:06 +00:00
|
|
|
/*! @file
|
|
|
|
|
|
|
|
@id $Id$
|
|
|
|
|
|
|
|
@see @ref apilogin
|
|
|
|
|
|
|
|
@page api
|
|
|
|
|
|
|
|
@section apilogin Login
|
|
|
|
|
|
|
|
API-call login.php
|
|
|
|
|
|
|
|
Check if a user is consistent to the data in the server's database
|
|
|
|
or create a user, if he does not yet exist in the @ref usertable
|
|
|
|
(and the user name is available).
|
|
|
|
|
|
|
|
@param user user's name
|
|
|
|
@param pubkey user's public key
|
|
|
|
|
|
|
|
@return json encoded status with text:
|
|
|
|
- success() in case of success (user exists or has been created)
|
|
|
|
- error() in case of mismatch
|
|
|
|
*/
|
|
|
|
// 1 2 3 4 5 6 7 8
|
|
|
|
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
|
2015-06-28 20:58:51 +00:00
|
|
|
try {
|
2015-07-02 07:08:13 +00:00
|
|
|
require_once("usertable.php");
|
2015-06-28 20:58:51 +00:00
|
|
|
$user = $db->real_escape_string($_REQUEST['user']);
|
|
|
|
$pubkey = $db->real_escape_string($_REQUEST['pubkey']);
|
2015-07-02 07:08:13 +00:00
|
|
|
$pgp = gnupg_init();
|
2015-07-08 05:48:27 +00:00
|
|
|
if (!$pgp) error("pgp on server failed");
|
|
|
|
$verify = gnupg_import($pgp, $_REQUEST['pubkey']);
|
|
|
|
if (!$verify) error("wrong identity");
|
|
|
|
$q = $db->query("select * from user where name='$user' and pubkey='$pubkey';");
|
|
|
|
if ($q->num_rows==1) {
|
|
|
|
success("user verified");
|
|
|
|
} elseif ($q->num_rows==0) {
|
|
|
|
$q = $db->query("insert into user (name, pubkey) values ('$user', '$pubkey');");
|
|
|
|
if (!q) error("creation of user failed");
|
|
|
|
success("user created");
|
2015-06-28 20:58:51 +00:00
|
|
|
} else {
|
2015-07-08 05:48:27 +00:00
|
|
|
error("server database defect");
|
2015-06-28 20:58:51 +00:00
|
|
|
}
|
|
|
|
} catch (Exception $e) {
|
2015-07-15 21:33:06 +00:00
|
|
|
error("login failed");
|
2015-06-28 20:58:51 +00:00
|
|
|
}
|
|
|
|
?>
|