src.dualinventive.com/mtinfo/dist/webroot/main/include/db_mobile.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;
}
?>