Files
tms/mobile/index.php
TMS eb299c9131 Initial commit: Kimai TMS
Kimai time management system (PHP 5.6 / MySQL) with custom extensions:
- Budget tracking (ki_budget)
- Change request form (ki_changerequest)
- Invoice generation (ki_invoice)
- Expense tracking (ki_expenses)
- Flexi time (ki_flexitime)
- Export, admin panel, timesheets, tasks, summary

Database: ~900K time entries, 2,000+ users, 439 projects.
Config: includes/autoconf.php — localhost/kimai/kimai
2026-06-18 21:20:26 +00:00

118 lines
2.6 KiB
PHP

<?php
// =====================
// = standard includes =
// =====================
require('../includes/basics.php');
// =========================
// = authentication method =
// =========================
require(WEBROOT.'auth/kimai.php');
$authPlugin = new KimaiAuth();
$action = isset($_REQUEST['action'])?$_REQUEST['action']:'';
$banned = false;
switch ($action) {
case 'login':
$name = htmlspecialchars(trim($_REQUEST['name']));
$password = $_REQUEST['password'];
// perform login of user
if ($authPlugin->authenticate($name,$password,$userId)) {
if ($userId === false) {
$userId = usr_create(array(
'usr_name' => $name,
'usr_grp' => $authPlugin->getDefaultGroupId(),
'usr_sts' => 2,
'usr_active' => 1
));
}
$userData = usr_get_data($userId);
if ($userData['ban'] < ($kga['conf']['loginTries']) ||
(time() - $userData['banTime']) > $kga['conf']['loginBanTime']) {
// logintries not used up OR
// bantime is over
// => grant access
$keymai=random_code(30);
setcookie ("kimai_key",$keymai);
setcookie ("kimai_usr",$userData['usr_name']);
loginSetKey($userId,$keymai);
header("Location: record.php");
} else {
// login attempt even though logintries are used up and bantime is not over => deny
setcookie ("kimai_key","0"); setcookie ("kimai_usr","0");
loginUpdateBan($userId);
$banned = true;
}
}
else {
// wrong username/password => deny
setcookie ("kimai_key","0"); setcookie ("kimai_usr","0");
if ($userId !== false)
loginUpdateBan($userId,true);
$loginFailed = true;
}
}
?>
<html>
<head>
<title></title>
<meta content="">
<style>
body {
/*background-color:black;*/
background:url('../grfx/ki_twitter_bg.jpg') no-repeat;
background-color:#43e820;
}
label {
display:block;
}
</style>
</head>
<body>
<?php
if ($banned) {
echo "<h1>".$kga['lang']['banned']."</h1>";
echo $kga['lang']['tooManyLogins'];
}
?>
<form method="post">
<input type="hidden" name="action" value="login"/>
<label for="name">User:</label>
<input type="text" name="name"/>
<label for="username">Password:</label>
<input type="password" name="password"/>
<input type="submit" value="login"/>
</form>
<?php
if (isset($loginFailed)) {
echo "<h1>".$kga['lang']['accessDenied']."</h1>";
echo $kga['lang']['wrongPass'];
}
?>
</body>
</html>