GitGram — login.php — GitGram
PassGram / main / v6.00 / login.php1,470 B↓ Raw
<?php
/**
 * PassGram v3.0 - Login Entry Point
 */

require_once __DIR__ . '/autoload.php';

use PassGram\Core\Config;
use PassGram\Core\Session;
use PassGram\Core\Database;
use PassGram\Security\Auth;
use PassGram\Security\CSRF;
use PassGram\Security\Encryption;
use PassGram\Models\User;
use PassGram\Models\Group;
use PassGram\Models\Invite;
use PassGram\Helpers\Validator;
use PassGram\Helpers\Logger;
use PassGram\Controllers\AuthController;

// Check if installed
$config = Config::getInstance(__DIR__ . '/config');
if (!$config->isInstalled() || !file_exists(__DIR__ . '/data/users.json.enc')) {
    header('Location: /setup.php');
    exit;
}

// Start session
Session::start();

// Initialize
$masterKey = hex2bin($config->get('security.master_application_key'));
$encryption = new Encryption($masterKey, $config->get('security.encryption'));
$db = new Database($encryption, $config->database());

$csrf = new CSRF();
$validator = new Validator($config);
$logger = new Logger($config->get('database.activity_log'));

$userModel = new User($db, $config, $validator);
$groupModel = new Group($db, $validator);
$inviteModel = new Invite($db, $config, $validator);
$auth = new Auth($db, $config, $logger);

// Handle login
$controller = new AuthController($config, $db, $auth, $csrf, $userModel, $groupModel, $inviteModel, $validator, $logger);

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $controller->processLogin();
} else {
    $controller->showLogin();
}
Ready
GitGram