140 lines
3.6 KiB
PHP
140 lines
3.6 KiB
PHP
<?php
|
|
/** \file include\db_mobile.php
|
|
* \brief DI webinterface database mobile functions
|
|
* \author Rob Schalken, Core|Vision
|
|
* \version $Revision: 1.6 $
|
|
* \date $Date: 2013/10/09 14:52:11 $
|
|
*
|
|
* This file contains the mobile database functions
|
|
*/
|
|
|
|
|
|
/**
|
|
* * Update mobile device (expire time)
|
|
*
|
|
* Inputs:
|
|
* - user_id: User database id
|
|
*
|
|
* Return: Array containing all mobile devices
|
|
*/
|
|
function db_fetch_mobile_uuid($user_id, $uuid = "") {
|
|
// Initial return value
|
|
$result = "";
|
|
|
|
// Fetch mobile devices
|
|
$mobiles = db_fetch_data("SELECT * FROM gebruiker_mobiel WHERE gebruiker='" . ($user_id) . "'");
|
|
|
|
// Parse into result
|
|
if (!empty($mobiles)) {
|
|
$result = $mobiles;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
/**
|
|
* Store mobile device
|
|
*
|
|
* Inputs:
|
|
* - mobile_array: Array containing all mobile info (user and uuid)
|
|
*
|
|
* Return: 1 (OK)/ 0(Error)
|
|
*/
|
|
function db_store_mobile_uuid($mobile_array) {
|
|
// Initial return value
|
|
$result = 0;
|
|
|
|
// Query storing new mobile device
|
|
$query = "INSERT INTO gebruiker_mobiel (gebruiker, uuid, t_expire) VALUES (";
|
|
$query .= "'" . ($mobile_array['gebruiker']) . "',";
|
|
$query .= "'" . ($mobile_array['uuid']) . "',";
|
|
$query .= "unix_timestamp(date_add(now(), interval 1 month)))";
|
|
|
|
if (db_store_data($query)) {
|
|
// Result OK
|
|
$result = 1;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
/**
|
|
* Update mobile device (expire time)
|
|
*
|
|
* Inputs:
|
|
* - mobile_array: Array containing all mobile info (user and uuid)
|
|
*
|
|
* Return: 1 (OK)/ 0(Error)
|
|
*/
|
|
function db_update_mobile_uuid($mobile_array) {
|
|
// Initial return value
|
|
$result = 0;
|
|
|
|
// Query updating lance
|
|
$query = "UPDATE gebruiker_mobiel SET t_expire=unix_timestamp(date_add(now(), interval 1 month)) ";
|
|
$query .= "WHERE gebruiker='" . ($mobile_array['gebruiker']) . "' AND uuid='" . ($mobile_array['uuid']) . "'";
|
|
|
|
if (db_store_data($query)) {
|
|
// Result OK
|
|
$result = 1;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
/**
|
|
* Verify mobile device
|
|
*
|
|
* Inputs:
|
|
* - mobile_array: Array containing all mobile info (user and uuid)
|
|
*
|
|
* Return: TRUE (OK)/ FALSE (Error)
|
|
*/
|
|
function db_verify_mobile_uuid($mobile_array) {
|
|
// Initial return value
|
|
$result = FALSE;
|
|
|
|
// Find unused mobile devices
|
|
$unused_mobiles = db_fetch_data("SELECT * FROM gebruiker_mobiel WHERE t_expire < unix_timestamp(now())");
|
|
|
|
if (is_array($unused_mobiles)) {
|
|
// Start transaction
|
|
db_start_transaction();
|
|
|
|
foreach($unused_mobiles as $unused_mobile) {
|
|
// Remove old mobiles (Garbage collector functionality)
|
|
db_store_data("DELETE FROM gebruiker_mobiel WHERE gebruiker='" . $unused_mobile['gebruiker'] . "' AND uuid='" . $unused_mobile['uuid'] . "'");
|
|
|
|
// Debug info
|
|
DBG("Mobile garbage collector: " . $unused_mobile['gebruiker'] . ": " . $unused_mobile['uuid']);
|
|
}
|
|
|
|
// Commit transaction
|
|
db_commit_transaction();
|
|
}
|
|
|
|
// Get requested mobile devices
|
|
$mobiles = db_fetch_mobile_uuid($mobile_array['gebruiker']);
|
|
|
|
// array containing mobile devices?
|
|
if (is_array($mobiles)) {
|
|
foreach($mobiles as $mobile) {
|
|
// Already found?
|
|
if (!$result) {
|
|
// Correct uuid?
|
|
if ($mobile['uuid'] == $mobile_array['uuid']) {
|
|
$result = TRUE;
|
|
|
|
// Update expiration date/time
|
|
db_update_mobile_uuid($mobile_array);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
?>
|