xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
<root> / inc / login / login.php (d7ab5d6f3655c6916bb4c1de90546402bf3b2b5c) (1,273B) (mode 100644) [raw]
<?php
rg_log("FILE: /inc/login/login");

$user = trim(rg_var_str('user'));
$pass = trim(rg_var_str('pass'));
$login_token = trim(rg_var_str('login_token'));
$lock_ip = rg_var_uint('lock_ip');

$_login = "";

$errmsg = array();

while ($rg['doit'] == 1) {
	if (!rg_valid_referer()) {
		$errmsg[] = "invalid referer; try again";
		break;
	}

	if (!rg_token_valid($db, $rg, 'login', FALSE)) {
		$errmsg[] = "invalid token; try again";
		break;
	}

	$r = rg_user_login_by_user_pass($db, $user, $pass, $login_token,
		$rg['ip'], $lock_ip, $rg['https'], $rg['hostname'],
		$rg['login_ui']);
	if ($r['ok'] !== 1) {
		$errmsg[] = $r['errmsg'];
		break;
	}

	// redirect to home page
	$url = rg_re_userpage($rg['login_ui']);
	rg_redirect($url);
}

// hints
$hints = array();
$hints[]['HTML:hint'] = rg_template("user/hints/login.html", $rg, TRUE /*xss*/);
$rg['HTML:login_hints'] = rg_template_table("hints/list", $hints, $rg);

$rg['user'] = $user;
$rg['pass'] = $pass;
$rg['login_token'] = $login_token;
$rg['HTML:errmsg'] = rg_template_errmsg($errmsg);
$rg['forgot_send'] = rg_re_url("/op/forgot_send");
$rg['create_account'] = rg_re_url("/op/create_account");
$rg['rg_form_token'] = rg_token_get($db, $rg, 'login');
$_login .= rg_template("user/login.html", $rg, TRUE /*xss*/);
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master