<?php
$INC = isset($INC) ? $INC : dirname(__FILE__);
require_once($INC . "/user.inc.php");
/*
* Event functions
*/
$rg_admin_functions = array(
6000 => "rg_admin_invite",
6001 => "rg_admin_invite_one"
);
rg_event_register_functions($rg_admin_functions);
/*
* Event for invites
*/
function rg_admin_invite($db, $event)
{
$ret = array();
rg_log_ml("DEBUG: event[list]=" . print_r($event['list'], TRUE));
foreach ($event['list'] as $line) {
$line = trim($line);
if (empty($line))
continue;
$t = explode('|', $line, 2);
$ret[] = array_merge($event,
array(
'category' => 6001,
'prio' => 100,
'email' => trim($t[0]),
'name' => trim($t[1])
)
);
}
return $ret;
}
/*
* Event for invites (one e-mail version)
*/
function rg_admin_invite_one($db, $event)
{
global $rg_admin_email;
$rg = array();
$subject = preg_replace('/{NAME}/', $event['name'], $event['subject']);
$subject = "=?UTF-8?B?" . base64_encode(trim($subject)) . "?=";
$header = rg_template("mail/common.head.txt", $rg);
$body = preg_replace('/{NAME}/', $event['name'], $event['body']);
$r = mail($event['email'], $subject, $body, $header,
"-f $rg_admin_email");
if ($r === FALSE)
return FALSE;
return array();
}
/*
* Deals with invites
*/
function rg_admin_invites_high_level($db, $rg)
{
rg_log_enter("rg_admin_invites_high_level");
$ret = "";
$inv = array();
$inv['list'] = "";
$inv['subject'] = "";
$inv['body'] = "";
$errmsg = array();
$show_form = TRUE;
while (1) {
if (rg_var_int("doit") == 0)
break;
$inv['list'] = rg_var_str("inv::list");
$inv['subject'] = rg_var_str("inv::subject");
$inv['body'] = rg_var_str("inv::body");
if (!rg_valid_referer()) {
$errmsg[] = "invalid referer; try again";
break;
}
if (!rg_token_valid($db, $rg, FALSE)) {
$errmsg[] = "invalid token; try again";
break;
}
if (empty($inv['list'])) {
$errmsg[] = "list is empty";
break;
}
if (empty($inv['subject'])) {
$errmsg[] = "subject is empty";
break;
}
if (empty($inv['body'])) {
$errmsg[] = "body is empty";
break;
}
$list = explode("\n", trim($inv['list']));
foreach ($list as $line) {
$line = trim($line);
if (empty($line))
continue;
$t = explode('|', $line, 2);
if (count($t) != 2) {
$errmsg[] = 'invalid line: ' . rg_xss_safe($line);
} else {
if (!strstr($t[0], '@'))
$errmsg[] = 'invalid e-mail in line: ' . rg_xss_safe($line);
}
}
if (!empty($errmsg))
break;
$event = array(
'category' => 6000,
'prio' => 50);
$event = array_merge($event, $inv);
$event['list'] = $list;
$r = rg_event_add($db, $event);
if ($r !== TRUE) {
$errmsg[] = "cannot add event (" . rg_event_error() . ")";
break;
}
rg_event_signal_daemon("", 0);
$ret .= rg_template("admin/invites/sent.html", $rg);
$show_form = FALSE;
break;
}
if ($show_form) {
$rg['inv'] = $inv;
$rg['HTML:errmsg'] = rg_template_errmsg($errmsg);
$rg['rg_form_token'] = rg_token_get($db, $rg);
$ret .= rg_template("admin/invites/invites.html", $rg);
}
rg_log_exit();
return $ret;
}
?>
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