You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
PHP
65 lines
1.5 KiB
PHP
<?
|
|
session_start();
|
|
|
|
function isLoggedIn() {
|
|
return isset($_SESSION['sessionId']) && ($_SESSION['sessionId'] == generateSessionId());
|
|
}
|
|
|
|
function verifyAuthorized() {
|
|
if(!isLoggedIn()) {
|
|
requestAuthFail("No valid session. Please <a href=\".\">re-login</a>.");
|
|
die(403);
|
|
}
|
|
}
|
|
|
|
function generateSessionId() {
|
|
$str = "sessionId";
|
|
$str .= $_SERVER['REMOTE_ADDR'];
|
|
$str .= date("Ymd");
|
|
$str .= (isset($_SESSION['householdId']) ? $_SESSION['householdId'] : rand());
|
|
return md5($str);
|
|
}
|
|
|
|
function logout() {
|
|
unset($_SESSION['sessionId']);
|
|
}
|
|
|
|
function login($householdId, $password) {
|
|
global $db;
|
|
initDatabaseConnection();
|
|
|
|
$resultSet = $db->query("SELECT * FROM household WHERE id = $householdId");
|
|
$household = $resultSet->fetchArray();
|
|
if($household) {
|
|
$testHash = createPasswordHash($password, $household['password_salt']);
|
|
|
|
if($household['password_hash'] == $testHash) {
|
|
$_SESSION['householdId'] = $householdId;
|
|
$_SESSION['sessionId'] = generateSessionId();
|
|
$_SESSION['householdName'] = $household['name'];
|
|
$_SESSION['householdCurrency'] = $household['currency'];
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function updateHouseholdInfo($name, $currency) {
|
|
$_SESSION['householdName'] = $name;
|
|
$_SESSION['householdCurrency'] = $currency;
|
|
}
|
|
|
|
function getHouseholdId() {
|
|
return $_SESSION['householdId'];
|
|
}
|
|
|
|
function getHouseholdName() {
|
|
return $_SESSION['householdName'];
|
|
}
|
|
|
|
function getHouseholdCurrency() {
|
|
return $_SESSION['householdCurrency'];
|
|
}
|
|
|
|
?>
|