Merge pull request #920 from dawnbreak/master
Add alert to admin page about old PHP version. Fixing (un)blocking accounts in admin.
This commit is contained in:
commit
f7d1fb9c5a
@ -56,7 +56,11 @@ $r = q("SELECT * FROM mail WHERE uid=%d AND $sql_extra ORDER BY created DESC LIM
|
|||||||
|
|
||||||
[b]NULL dates[/b]
|
[b]NULL dates[/b]
|
||||||
[li]To be written
|
[li]To be written
|
||||||
[code]Example[/code][/li]
|
[code]// Example
|
||||||
|
$r = q("DELETE FROM mail WHERE expires != '%s' AND expires < %s ",
|
||||||
|
dbesc(NULL_DATE),
|
||||||
|
db_utcnow()
|
||||||
|
);[/code][/li]
|
||||||
|
|
||||||
[b]Storing binary data[/b]
|
[b]Storing binary data[/b]
|
||||||
[li]To be written
|
[li]To be written
|
||||||
|
291
mod/admin.php
291
mod/admin.php
@ -1,12 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Red admin
|
* @file mod/admin.php
|
||||||
|
* @brief RedMatrix's admin controller.
|
||||||
|
*
|
||||||
|
* Controller for the /admin/ area.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param App $a
|
* @param App &$a
|
||||||
*/
|
*/
|
||||||
function admin_post(&$a){
|
function admin_post(&$a){
|
||||||
logger('admin_post', LOGGER_DEBUG);
|
logger('admin_post', LOGGER_DEBUG);
|
||||||
@ -27,7 +29,6 @@ function admin_post(&$a){
|
|||||||
case 'channels':
|
case 'channels':
|
||||||
admin_page_channels_post($a);
|
admin_page_channels_post($a);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'plugins':
|
case 'plugins':
|
||||||
if (argc() > 2 &&
|
if (argc() > 2 &&
|
||||||
is_file("addon/" . argv(2) . "/" . argv(2) . ".php")){
|
is_file("addon/" . argv(2) . "/" . argv(2) . ".php")){
|
||||||
@ -38,7 +39,6 @@ function admin_post(&$a){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
goaway($a->get_baseurl(true) . '/admin/plugins/' . argv(2) );
|
goaway($a->get_baseurl(true) . '/admin/plugins/' . argv(2) );
|
||||||
return; // NOTREACHED
|
|
||||||
break;
|
break;
|
||||||
case 'themes':
|
case 'themes':
|
||||||
$theme = argv(2);
|
$theme = argv(2);
|
||||||
@ -53,8 +53,6 @@ function admin_post(&$a){
|
|||||||
if(is_ajax()) return;
|
if(is_ajax()) return;
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/admin/themes/' . $theme );
|
goaway($a->get_baseurl(true) . '/admin/themes/' . $theme );
|
||||||
|
|
||||||
return;
|
|
||||||
break;
|
break;
|
||||||
case 'logs':
|
case 'logs':
|
||||||
admin_page_logs_post($a);
|
admin_page_logs_post($a);
|
||||||
@ -65,20 +63,17 @@ function admin_post(&$a){
|
|||||||
case 'dbsync':
|
case 'dbsync':
|
||||||
admin_page_dbsync_post($a);
|
admin_page_dbsync_post($a);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'profs':
|
case 'profs':
|
||||||
admin_page_profs_post($a);
|
admin_page_profs_post($a);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/admin' );
|
goaway($a->get_baseurl(true) . '/admin' );
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param App $a
|
* @param App $$a
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function admin_content(&$a) {
|
function admin_content(&$a) {
|
||||||
@ -93,25 +88,25 @@ function admin_content(&$a) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// array( url, name, extra css classes )
|
// array( url, name, extra css classes )
|
||||||
$aside = Array(
|
$aside = array(
|
||||||
'site' => Array($a->get_baseurl(true)."/admin/site/", t("Site") , "site"),
|
'site' => array($a->get_baseurl(true)."/admin/site/", t("Site") , "site"),
|
||||||
'users' => Array($a->get_baseurl(true)."/admin/users/", t("Accounts") , "users"),
|
'users' => array($a->get_baseurl(true)."/admin/users/", t("Accounts") , "users"),
|
||||||
'channels' => Array($a->get_baseurl(true)."/admin/channels/", t("Channels") , "channels"),
|
'channels' => array($a->get_baseurl(true)."/admin/channels/", t("Channels") , "channels"),
|
||||||
'plugins' => Array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
|
'plugins' => array($a->get_baseurl(true)."/admin/plugins/", t("Plugins") , "plugins"),
|
||||||
'themes' => Array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
|
'themes' => array($a->get_baseurl(true)."/admin/themes/", t("Themes") , "themes"),
|
||||||
'queue' => array(z_root() . '/admin/queue', t('Inspect queue'), 'queue'),
|
'queue' => array(z_root() . '/admin/queue', t('Inspect queue'), 'queue'),
|
||||||
// 'hubloc' => Array($a->get_baseurl(true)."/admin/hubloc/", t("Server") , "server"),
|
// 'hubloc' => array($a->get_baseurl(true)."/admin/hubloc/", t("Server") , "server"),
|
||||||
'profs' => array(z_root() . '/admin/profs', t('Profile Config'), 'profs'),
|
'profs' => array(z_root() . '/admin/profs', t('Profile Config'), 'profs'),
|
||||||
'dbsync' => Array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync")
|
'dbsync' => array($a->get_baseurl(true)."/admin/dbsync/", t('DB updates'), "dbsync")
|
||||||
);
|
);
|
||||||
|
|
||||||
/* get plugins admin page */
|
/* get plugins admin page */
|
||||||
|
|
||||||
$r = q("SELECT * FROM `addon` WHERE `plugin_admin`=1");
|
$r = q("SELECT * FROM addon WHERE plugin_admin = 1");
|
||||||
$aside['plugins_admin']=Array();
|
$aside['plugins_admin'] = array();
|
||||||
foreach ($r as $h){
|
foreach ($r as $h){
|
||||||
$plugin = $h['name'];
|
$plugin = $h['name'];
|
||||||
$aside['plugins_admin'][] = Array($a->get_baseurl(true)."/admin/plugins/".$plugin, $plugin, "plugin");
|
$aside['plugins_admin'][] = array($a->get_baseurl(true) . '/admin/plugins/' . $plugin, $plugin, 'plugin');
|
||||||
// temp plugins with admin
|
// temp plugins with admin
|
||||||
$a->plugins_admin[] = $plugin;
|
$a->plugins_admin[] = $plugin;
|
||||||
}
|
}
|
||||||
@ -129,7 +124,6 @@ function admin_content(&$a) {
|
|||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page content
|
* Page content
|
||||||
*/
|
*/
|
||||||
@ -169,7 +163,7 @@ function admin_content(&$a) {
|
|||||||
$o = admin_page_queue($a);
|
$o = admin_page_queue($a);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
notice( t("Item not found.") );
|
notice( t('Item not found.') );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$o = admin_page_summary($a);
|
$o = admin_page_summary($a);
|
||||||
@ -186,41 +180,72 @@ function admin_content(&$a) {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Admin Summary Page
|
* @brief Returns content for Admin Summary Page.
|
||||||
* @param App $a
|
*
|
||||||
* @return string
|
* @param App $$a
|
||||||
|
* @return string HTML from parsed admin_summary.tpl
|
||||||
*/
|
*/
|
||||||
function admin_page_summary(&$a) {
|
function admin_page_summary(&$a) {
|
||||||
|
|
||||||
|
|
||||||
// list total user accounts, expirations etc.
|
// list total user accounts, expirations etc.
|
||||||
|
$accounts = array();
|
||||||
|
$r = q("SELECT COUNT(*) AS total, COUNT(IF(account_expires > %s, 1, NULL)) AS expiring, COUNT(IF(account_expires < %s AND account_expires != '%s', 1, NULL)) AS expired, COUNT(IF((account_flags & %d)>0, 1, NULL)) AS blocked FROM account",
|
||||||
|
db_utcnow(),
|
||||||
|
db_utcnow(),
|
||||||
|
dbesc(NULL_DATE),
|
||||||
|
intval(ACCOUNT_BLOCKED)
|
||||||
|
);
|
||||||
|
if ($r) {
|
||||||
|
$accounts['total'] = array('label' => t('# Accounts'), 'val' => $r[0]['total']);
|
||||||
|
$accounts['blocked'] = array('label' => t('# blocked accounts'), 'val' => $r[0]['blocked']);
|
||||||
|
$accounts['expired'] = array('label' => t('# expired accounts'), 'val' => $r[0]['expired']);
|
||||||
|
$accounts['expiring'] = array('label' => t('# expiring accounts'), 'val' => $r[0]['expiring']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// pending registrations
|
||||||
$r = q("SELECT COUNT(account_id) as total FROM `account`");
|
$r = q("SELECT COUNT(id) AS `count` FROM register");
|
||||||
$users = $r[0]['total'];
|
|
||||||
|
|
||||||
$r = q("SELECT COUNT(id) as `count` FROM `register`");
|
|
||||||
$pending = $r[0]['count'];
|
$pending = $r[0]['count'];
|
||||||
|
|
||||||
$r = q("select count(*) as total from outq where outq_delivered = 0");
|
// available channels, primary and clones
|
||||||
$queue = (($r) ? $r[0]['total'] : 0);
|
$channels = array();
|
||||||
|
$r = q("SELECT COUNT(*) AS total, COUNT(IF(channel_primary = 1, 1, NULL)) AS main, COUNT(IF(channel_primary = 0, 1, NULL)) AS clones FROM channel WHERE NOT (channel_pageflags & %d)>0",
|
||||||
|
intval(PAGE_REMOVED)
|
||||||
|
);
|
||||||
|
if ($r) {
|
||||||
|
$channels['total'] = array('label' => t('# Channels'), 'val' => $r[0]['total']);
|
||||||
|
$channels['main'] = array('label' => t('# primary'), 'val' => $r[0]['main']);
|
||||||
|
$channels['clones'] = array('label' => t('# clones'), 'val' => $r[0]['clones']);
|
||||||
|
}
|
||||||
|
|
||||||
// We can do better, but this is a quick queue status
|
// We can do better, but this is a quick queue status
|
||||||
|
$r = q("SELECT COUNT(outq_delivered) AS total FROM outq WHERE outq_delivered = 0");
|
||||||
|
$queue = (($r) ? $r[0]['total'] : 0);
|
||||||
$queues = array( 'label' => t('Message queues'), 'queue' => $queue );
|
$queues = array( 'label' => t('Message queues'), 'queue' => $queue );
|
||||||
|
|
||||||
|
// If no plugins active return 0, otherwise list of plugin names
|
||||||
|
$plugins = (count($a->plugins) == 0) ? count($a->plugins) : $a->plugins;
|
||||||
|
|
||||||
$t = get_markup_template("admin_summary.tpl");
|
// Could be extended to provide also other alerts to the admin
|
||||||
|
$alertmsg = '';
|
||||||
|
// annoy admin about upcoming unsupported PHP version
|
||||||
|
if (version_compare(PHP_VERSION, '5.4', '<')) {
|
||||||
|
$alertmsg = 'Your PHP version ' . PHP_VERSION . ' will not be supported with the next major release of RedMatrix. You are strongly urged to upgrade to a current version.'
|
||||||
|
. '<br>PHP 5.3 has reached its <a href="http://php.net/eol.php" class="alert-link">End of Life (EOL)</a> in August 2014.'
|
||||||
|
. ' A list about current PHP versions can be found <a href="http://php.net/supported-versions.php" class="alert-link">here</a>.';
|
||||||
|
}
|
||||||
|
|
||||||
|
$t = get_markup_template('admin_summary.tpl');
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
'$page' => t('Summary'),
|
'$page' => t('Summary'),
|
||||||
|
'$adminalertmsg' => $alertmsg,
|
||||||
'$queues' => $queues,
|
'$queues' => $queues,
|
||||||
'$users' => Array( t('Registered users'), $users),
|
'$accounts' => array( t('Registered accounts'), $accounts),
|
||||||
'$accounts' => $accounts,
|
'$pending' => array( t('Pending registrations'), $pending),
|
||||||
'$pending' => Array( t('Pending registrations'), $pending),
|
'$channels' => array( t('Registered channels'), $channels),
|
||||||
'$version' => Array( t('Version'), RED_VERSION),
|
'$plugins' => array( t('Active plugins'), $plugins ),
|
||||||
'$build' => get_config('system','db_version'),
|
'$version' => array( t('Version'), RED_VERSION),
|
||||||
'$plugins' => Array( t('Active plugins'), $a->plugins )
|
'$build' => get_config('system', 'db_version')
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,7 +255,7 @@ function admin_page_summary(&$a) {
|
|||||||
* @param App $a
|
* @param App $a
|
||||||
*/
|
*/
|
||||||
function admin_page_site_post(&$a){
|
function admin_page_site_post(&$a){
|
||||||
if (!x($_POST,"page_site")){
|
if (!x($_POST, 'page_site')){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,7 +270,6 @@ function admin_page_site_post(&$a){
|
|||||||
// $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
|
// $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : '');
|
||||||
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
|
$maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0);
|
||||||
|
|
||||||
|
|
||||||
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
|
$register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0);
|
||||||
$access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0);
|
$access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0);
|
||||||
$abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
|
$abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0);
|
||||||
@ -282,17 +306,15 @@ function admin_page_site_post(&$a){
|
|||||||
set_config('system', 'no_login_on_homepage', $no_login_on_homepage);
|
set_config('system', 'no_login_on_homepage', $no_login_on_homepage);
|
||||||
set_config('system', 'verify_email', $verify_email);
|
set_config('system', 'verify_email', $verify_email);
|
||||||
|
|
||||||
if ($banner=="") {
|
if ($banner == '') {
|
||||||
del_config('system', 'banner');
|
del_config('system', 'banner');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
set_config('system', 'banner', $banner);
|
set_config('system', 'banner', $banner);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($admininfo == ''){
|
if ($admininfo == ''){
|
||||||
del_config('system', 'admininfo');
|
del_config('system', 'admininfo');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
require_once('include/text.php');
|
require_once('include/text.php');
|
||||||
linkify_tags($a, $admininfo, local_channel());
|
linkify_tags($a, $admininfo, local_channel());
|
||||||
set_config('system', 'admininfo', $admininfo);
|
set_config('system', 'admininfo', $admininfo);
|
||||||
@ -317,10 +339,9 @@ function admin_page_site_post(&$a){
|
|||||||
set_config('system','block_public', $block_public);
|
set_config('system','block_public', $block_public);
|
||||||
set_config('system','publish_all', $force_publish);
|
set_config('system','publish_all', $force_publish);
|
||||||
set_config('system','disable_discover_tab', $disable_discover_tab);
|
set_config('system','disable_discover_tab', $disable_discover_tab);
|
||||||
if($global_directory=="") {
|
if ($global_directory == '') {
|
||||||
del_config('system', 'directory_submit_url');
|
del_config('system', 'directory_submit_url');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
set_config('system', 'directory_submit_url', $global_directory);
|
set_config('system', 'directory_submit_url', $global_directory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,8 +354,6 @@ function admin_page_site_post(&$a){
|
|||||||
|
|
||||||
info( t('Site settings updated.') . EOL);
|
info( t('Site settings updated.') . EOL);
|
||||||
goaway($a->get_baseurl(true) . '/admin/site' );
|
goaway($a->get_baseurl(true) . '/admin/site' );
|
||||||
return; // NOTREACHED
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -388,6 +407,7 @@ function admin_page_site(&$a) {
|
|||||||
$banner = get_config('system', 'banner');
|
$banner = get_config('system', 'banner');
|
||||||
if($banner == false)
|
if($banner == false)
|
||||||
$banner = 'red';
|
$banner = 'red';
|
||||||
|
|
||||||
$banner = htmlspecialchars($banner);
|
$banner = htmlspecialchars($banner);
|
||||||
|
|
||||||
/* Admin Info */
|
/* Admin Info */
|
||||||
@ -455,7 +475,6 @@ function admin_page_site(&$a) {
|
|||||||
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
|
'$poll_interval' => array('poll_interval', t("Poll interval"), (x(get_config('system','poll_interval'))?get_config('system','poll_interval'):2), t("Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval.")),
|
||||||
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
|
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
|
||||||
'$form_security_token' => get_form_security_token("admin_site"),
|
'$form_security_token' => get_form_security_token("admin_site"),
|
||||||
|
|
||||||
));
|
));
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -484,7 +503,6 @@ function admin_page_hubloc_post(&$a){
|
|||||||
} else {
|
} else {
|
||||||
//set HUBLOC_OFFLINE to 1
|
//set HUBLOC_OFFLINE to 1
|
||||||
logger(' success = false ', LOGGER_DEBUG);
|
logger(' success = false ', LOGGER_DEBUG);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//unfotunatly zping wont work, I guess return format is not correct
|
//unfotunatly zping wont work, I guess return format is not correct
|
||||||
@ -492,28 +510,22 @@ function admin_page_hubloc_post(&$a){
|
|||||||
//$r = zping_content($hublocurl);
|
//$r = zping_content($hublocurl);
|
||||||
//logger('zping answer: ' . $r, LOGGER_DEBUG);
|
//logger('zping answer: ' . $r, LOGGER_DEBUG);
|
||||||
|
|
||||||
|
|
||||||
//in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db
|
//in case of repair store new pub key for tested hubloc (all channel with this hubloc) in db
|
||||||
//after repair set hubloc flags to 0
|
//after repair set hubloc flags to 0
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/admin/hubloc' );
|
goaway($a->get_baseurl(true) . '/admin/hubloc' );
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function admin_page_hubloc(&$a) {
|
function admin_page_hubloc(&$a) {
|
||||||
$o = '';
|
|
||||||
$hubloc = q("SELECT hubloc_id, hubloc_addr, hubloc_host, hubloc_status FROM hubloc");
|
$hubloc = q("SELECT hubloc_id, hubloc_addr, hubloc_host, hubloc_status FROM hubloc");
|
||||||
|
|
||||||
|
|
||||||
if(! $hubloc){
|
if(! $hubloc){
|
||||||
notice( t('No server found') . EOL);
|
notice( t('No server found') . EOL);
|
||||||
goaway($a->get_baseurl(true) . '/admin/hubloc');
|
goaway($a->get_baseurl(true) . '/admin/hubloc');
|
||||||
}
|
}
|
||||||
|
|
||||||
$t = get_markup_template("admin_hubloc.tpl");
|
$t = get_markup_template('admin_hubloc.tpl');
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$hubloc' => $hubloc,
|
'$hubloc' => $hubloc,
|
||||||
'$th_hubloc' => array(t('ID'), t('for channel'), t('on server'), t('Status')),
|
'$th_hubloc' => array(t('ID'), t('for channel'), t('on server'), t('Status')),
|
||||||
@ -521,16 +533,14 @@ function admin_page_hubloc(&$a) {
|
|||||||
'$page' => t('Server'),
|
'$page' => t('Server'),
|
||||||
'$queues' => $queues,
|
'$queues' => $queues,
|
||||||
//'$accounts' => $accounts, /*$accounts is empty here*/
|
//'$accounts' => $accounts, /*$accounts is empty here*/
|
||||||
'$pending' => Array( t('Pending registrations'), $pending),
|
'$pending' => array( t('Pending registrations'), $pending),
|
||||||
'$plugins' => Array( t('Active plugins'), $a->plugins ),
|
'$plugins' => array( t('Active plugins'), $a->plugins ),
|
||||||
'$form_security_token' => get_form_security_token("admin_hubloc")
|
'$form_security_token' => get_form_security_token('admin_hubloc')
|
||||||
));
|
));
|
||||||
return $o;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function admin_page_dbsync(&$a) {
|
function admin_page_dbsync(&$a) {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
|
if(argc() > 3 && intval(argv(3)) && argv(2) === 'mark') {
|
||||||
@ -558,6 +568,7 @@ function admin_page_dbsync(&$a) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
$o .= sprintf( t('Update function %s could not be found.'), $func);
|
$o .= sprintf( t('Update function %s could not be found.'), $func);
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -584,7 +595,6 @@ function admin_page_dbsync(&$a) {
|
|||||||
));
|
));
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function admin_page_queue($a) {
|
function admin_page_queue($a) {
|
||||||
@ -604,7 +614,6 @@ function admin_page_queue($a) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$r = q("select count(outq_posturl) as total, outq_posturl from outq
|
$r = q("select count(outq_posturl) as total, outq_posturl from outq
|
||||||
where outq_delivered = 0 group by outq_posturl order by total desc");
|
where outq_delivered = 0 group by outq_posturl order by total desc");
|
||||||
|
|
||||||
@ -627,53 +636,69 @@ function admin_page_queue($a) {
|
|||||||
));
|
));
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Users admin page
|
* @brief Handle POST actions on users admin page.
|
||||||
|
*
|
||||||
|
* This function is called when on the admin user/account page the form was
|
||||||
|
* submitted to handle multiple operations at once. If one of the icons next
|
||||||
|
* to an entry are pressed the function admin_page_users() will handle this.
|
||||||
*
|
*
|
||||||
* @param App $a
|
* @param App $a
|
||||||
*/
|
*/
|
||||||
function admin_page_users_post(&$a){
|
function admin_page_users_post($a) {
|
||||||
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : Array() );
|
$pending = ( x($_POST, 'pending') ? $_POST['pending'] : array() );
|
||||||
$users = ( x($_POST, 'user') ? $_POST['user'] : Array() );
|
$users = ( x($_POST, 'user') ? $_POST['user'] : array() );
|
||||||
|
$blocked = ( x($_POST, 'blocked') ? $_POST['blocked'] : array() );
|
||||||
|
|
||||||
check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
|
check_form_security_token_redirectOnErr('/admin/users', 'admin_users');
|
||||||
|
|
||||||
|
// change to switch structure?
|
||||||
|
// account block/unblock button was submitted
|
||||||
if (x($_POST, 'page_users_block')) {
|
if (x($_POST, 'page_users_block')) {
|
||||||
foreach($users as $uid){
|
for ($i = 0; $i < count($users); $i++) {
|
||||||
q("UPDATE account SET account_flags = (account_flags & %d) where account_id = %d",
|
// if account is blocked remove blocked bit-flag, otherwise add blocked bit-flag
|
||||||
|
$op = ($blocked[$i]) ? '& ~' : '| ';
|
||||||
|
q("UPDATE account SET account_flags = (account_flags $op%d) WHERE account_id = %d",
|
||||||
intval(ACCOUNT_BLOCKED),
|
intval(ACCOUNT_BLOCKED),
|
||||||
intval( $uid )
|
intval($users[$i])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
notice( sprintf( tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users)), count($users)) );
|
notice( sprintf( tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users)), count($users)) );
|
||||||
}
|
}
|
||||||
|
// account delete button was submitted
|
||||||
if (x($_POST, 'page_users_delete')) {
|
if (x($_POST, 'page_users_delete')) {
|
||||||
require_once("include/Contact.php");
|
require_once('include/Contact.php');
|
||||||
foreach ($users as $uid){
|
foreach ($users as $uid){
|
||||||
account_remove($uid, true, false);
|
account_remove($uid, true, false);
|
||||||
}
|
}
|
||||||
notice( sprintf( tt("%s user deleted", "%s users deleted", count($users)), count($users)) );
|
notice( sprintf( tt("%s user deleted", "%s users deleted", count($users)), count($users)) );
|
||||||
}
|
}
|
||||||
|
// registration approved button was submitted
|
||||||
if (x($_POST, 'page_users_approve')) {
|
if (x($_POST, 'page_users_approve')) {
|
||||||
foreach ($pending as $hash) {
|
foreach ($pending as $hash) {
|
||||||
user_allow($hash);
|
user_allow($hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// registration deny button was submitted
|
||||||
if (x($_POST, 'page_users_deny')) {
|
if (x($_POST, 'page_users_deny')) {
|
||||||
foreach ($pending as $hash) {
|
foreach ($pending as $hash) {
|
||||||
user_deny($hash);
|
user_deny($hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/admin/users' );
|
goaway($a->get_baseurl(true) . '/admin/users' );
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param App $a
|
* @brief Generate users admin page and handle single item operations.
|
||||||
|
*
|
||||||
|
* This function generates the users/account admin page and handles the actions
|
||||||
|
* if an icon next to an entry was clicked. If several items were selected and
|
||||||
|
* the form was submitted it is handled by the function admin_page_users_post().
|
||||||
|
*
|
||||||
|
* @param App &$a
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function admin_page_users(&$a){
|
function admin_page_users(&$a){
|
||||||
@ -688,28 +713,35 @@ function admin_page_users(&$a){
|
|||||||
goaway($a->get_baseurl(true) . '/admin/users' );
|
goaway($a->get_baseurl(true) . '/admin/users' );
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(argv(2)){
|
|
||||||
case "delete":{
|
|
||||||
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
|
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
|
||||||
|
|
||||||
|
switch (argv(2)){
|
||||||
|
case 'delete':
|
||||||
// delete user
|
// delete user
|
||||||
require_once("include/Contact.php");
|
require_once('include/Contact.php');
|
||||||
account_remove($uid,true,false);
|
account_remove($uid,true,false);
|
||||||
|
|
||||||
notice( sprintf(t("User '%s' deleted"), $account[0]['account_email']) . EOL);
|
notice( sprintf(t("User '%s' deleted"), $account[0]['account_email']) . EOL);
|
||||||
}; break;
|
break;
|
||||||
case "block":{
|
case 'block':
|
||||||
check_form_security_token_redirectOnErr('/admin/users', 'admin_users', 't');
|
q("UPDATE account SET account_flags = ( account_flags | %d ) WHERE account_id = %d",
|
||||||
q("UPDATE account SET account_flags = ( account_flags & ~%d ) where account_id = %d",
|
|
||||||
intval(ACCOUNT_BLOCKED),
|
intval(ACCOUNT_BLOCKED),
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
|
|
||||||
notice( sprintf( (($account[0]['account_flags'] & ACCOUNT_BLOCKED) ? t("User '%s' unblocked"):t("User '%s' blocked")) , $account[0]['account_email']) . EOL);
|
notice( sprintf( t("User '%s' blocked") , $account[0]['account_email']) . EOL);
|
||||||
}; break;
|
break;
|
||||||
}
|
case 'unblock':
|
||||||
goaway($a->get_baseurl(true) . '/admin/users' );
|
q("UPDATE account SET account_flags = ( account_flags & ~%d ) WHERE account_id = %d",
|
||||||
return ''; // NOTREACHED
|
intval(ACCOUNT_BLOCKED),
|
||||||
|
intval($uid)
|
||||||
|
);
|
||||||
|
|
||||||
|
notice( sprintf( t("User '%s' unblocked"), $account[0]['account_email']) . EOL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
goaway($a->get_baseurl(true) . '/admin/users' );
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get pending */
|
/* get pending */
|
||||||
@ -767,7 +799,7 @@ function admin_page_users(&$a){
|
|||||||
// $users = array_map("_setup_users", $users);
|
// $users = array_map("_setup_users", $users);
|
||||||
|
|
||||||
|
|
||||||
$t = get_markup_template("admin_users.tpl");
|
$t = get_markup_template('admin_users.tpl');
|
||||||
$o = replace_macros($t, array(
|
$o = replace_macros($t, array(
|
||||||
// strings //
|
// strings //
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
@ -798,6 +830,7 @@ function admin_page_users(&$a){
|
|||||||
'$users' => $users,
|
'$users' => $users,
|
||||||
));
|
));
|
||||||
$o .= paginate($a);
|
$o .= paginate($a);
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -831,7 +864,6 @@ function admin_page_channels_post(&$a){
|
|||||||
}
|
}
|
||||||
|
|
||||||
goaway($a->get_baseurl(true) . '/admin/channels' );
|
goaway($a->get_baseurl(true) . '/admin/channels' );
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -872,8 +904,6 @@ function admin_page_channels(&$a){
|
|||||||
}; break;
|
}; break;
|
||||||
}
|
}
|
||||||
goaway($a->get_baseurl(true) . '/admin/channels' );
|
goaway($a->get_baseurl(true) . '/admin/channels' );
|
||||||
return ''; // NOTREACHED
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get channels */
|
/* get channels */
|
||||||
@ -927,6 +957,7 @@ function admin_page_channels(&$a){
|
|||||||
'$channels' => $channels,
|
'$channels' => $channels,
|
||||||
));
|
));
|
||||||
$o .= paginate($a);
|
$o .= paginate($a);
|
||||||
|
|
||||||
return $o;
|
return $o;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -950,7 +981,7 @@ function admin_page_plugins(&$a){
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (x($_GET,"a") && $_GET['a']=="t"){
|
if (x($_GET,"a") && $_GET['a']=="t"){
|
||||||
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_themes', 't');
|
check_form_security_token_redirectOnErr('/admin/plugins', 'admin_plugins', 't');
|
||||||
|
|
||||||
// Toggle plugin status
|
// Toggle plugin status
|
||||||
$idx = array_search($plugin, $a->plugins);
|
$idx = array_search($plugin, $a->plugins);
|
||||||
@ -965,18 +996,19 @@ function admin_page_plugins(&$a){
|
|||||||
}
|
}
|
||||||
set_config("system","addon", implode(", ",$a->plugins));
|
set_config("system","addon", implode(", ",$a->plugins));
|
||||||
goaway($a->get_baseurl(true) . '/admin/plugins' );
|
goaway($a->get_baseurl(true) . '/admin/plugins' );
|
||||||
return ''; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
// display plugin details
|
// display plugin details
|
||||||
require_once('library/markdown.php');
|
require_once('library/markdown.php');
|
||||||
|
|
||||||
if (in_array($plugin, $a->plugins)){
|
if (in_array($plugin, $a->plugins)){
|
||||||
$status="on"; $action= t("Disable");
|
$status = 'on';
|
||||||
|
$action = t('Disable');
|
||||||
} else {
|
} else {
|
||||||
$status="off"; $action= t("Enable");
|
$status = 'off';
|
||||||
|
$action = t('Enable');
|
||||||
}
|
}
|
||||||
|
|
||||||
$readme=Null;
|
$readme = null;
|
||||||
if (is_file("addon/$plugin/README.md")){
|
if (is_file("addon/$plugin/README.md")){
|
||||||
$readme = file_get_contents("addon/$plugin/README.md");
|
$readme = file_get_contents("addon/$plugin/README.md");
|
||||||
$readme = Markdown($readme);
|
$readme = Markdown($readme);
|
||||||
@ -984,8 +1016,7 @@ function admin_page_plugins(&$a){
|
|||||||
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
|
$readme = "<pre>". file_get_contents("addon/$plugin/README") ."</pre>";
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin_form="";
|
$admin_form = '';
|
||||||
|
|
||||||
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){
|
if (is_array($a->plugins_admin) && in_array($plugin, $a->plugins_admin)){
|
||||||
@require_once("addon/$plugin/$plugin.php");
|
@require_once("addon/$plugin/$plugin.php");
|
||||||
if(function_exists($plugin.'_plugin_admin')) {
|
if(function_exists($plugin.'_plugin_admin')) {
|
||||||
@ -994,8 +1025,7 @@ function admin_page_plugins(&$a){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$t = get_markup_template('admin_plugins_details.tpl');
|
||||||
$t = get_markup_template("admin_plugins_details.tpl");
|
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
'$page' => t('Plugins'),
|
'$page' => t('Plugins'),
|
||||||
@ -1015,29 +1045,27 @@ function admin_page_plugins(&$a){
|
|||||||
'$screenshot' => '',
|
'$screenshot' => '',
|
||||||
'$readme' => $readme,
|
'$readme' => $readme,
|
||||||
|
|
||||||
'$form_security_token' => get_form_security_token("admin_themes"),
|
'$form_security_token' => get_form_security_token('admin_plugins'),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List plugins
|
* List plugins
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$plugins = array();
|
$plugins = array();
|
||||||
$files = glob("addon/*/");
|
$files = glob('addon/*/');
|
||||||
if($files) {
|
if($files) {
|
||||||
foreach($files as $file) {
|
foreach($files as $file) {
|
||||||
if (is_dir($file)){
|
if (is_dir($file)){
|
||||||
list($tmp, $id)=array_map("trim", explode("/",$file));
|
list($tmp, $id) = array_map('trim', explode('/', $file));
|
||||||
$info = get_plugin_info($id);
|
$info = get_plugin_info($id);
|
||||||
$plugins[] = array( $id, (in_array($id, $a->plugins)?"on":"off") , $info);
|
$plugins[] = array( $id, (in_array($id, $a->plugins)?"on":"off") , $info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$t = get_markup_template("admin_plugins.tpl");
|
$t = get_markup_template('admin_plugins.tpl');
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
'$page' => t('Plugins'),
|
'$page' => t('Plugins'),
|
||||||
@ -1045,7 +1073,7 @@ function admin_page_plugins(&$a){
|
|||||||
'$baseurl' => $a->get_baseurl(true),
|
'$baseurl' => $a->get_baseurl(true),
|
||||||
'$function' => 'plugins',
|
'$function' => 'plugins',
|
||||||
'$plugins' => $plugins,
|
'$plugins' => $plugins,
|
||||||
'$form_security_token' => get_form_security_token("admin_themes"),
|
'$form_security_token' => get_form_security_token('admin_plugins'),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1166,7 +1194,6 @@ function admin_page_themes(&$a){
|
|||||||
|
|
||||||
set_config('system', 'allowed_themes', $s);
|
set_config('system', 'allowed_themes', $s);
|
||||||
goaway($a->get_baseurl(true) . '/admin/themes' );
|
goaway($a->get_baseurl(true) . '/admin/themes' );
|
||||||
return ''; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// display theme details
|
// display theme details
|
||||||
@ -1186,21 +1213,19 @@ function admin_page_themes(&$a){
|
|||||||
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
|
$readme = "<pre>". file_get_contents("view/theme/$theme/README") ."</pre>";
|
||||||
}
|
}
|
||||||
|
|
||||||
$admin_form="";
|
$admin_form = '';
|
||||||
if (is_file("view/theme/$theme/php/config.php")){
|
if (is_file("view/theme/$theme/php/config.php")){
|
||||||
require_once("view/theme/$theme/php/config.php");
|
require_once("view/theme/$theme/php/config.php");
|
||||||
if(function_exists("theme_admin")){
|
if(function_exists("theme_admin")){
|
||||||
$admin_form = theme_admin($a);
|
$admin_form = theme_admin($a);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
|
$screenshot = array( get_theme_screenshot($theme), t('Screenshot'));
|
||||||
if(! stristr($screenshot[0],$theme))
|
if(! stristr($screenshot[0],$theme))
|
||||||
$screenshot = null;
|
$screenshot = null;
|
||||||
|
|
||||||
$t = get_markup_template("admin_plugins_details.tpl");
|
$t = get_markup_template('admin_plugins_details.tpl');
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
'$page' => t('Themes'),
|
'$page' => t('Themes'),
|
||||||
@ -1219,12 +1244,11 @@ function admin_page_themes(&$a){
|
|||||||
'$screenshot' => $screenshot,
|
'$screenshot' => $screenshot,
|
||||||
'$readme' => $readme,
|
'$readme' => $readme,
|
||||||
|
|
||||||
'$form_security_token' => get_form_security_token("admin_themes"),
|
'$form_security_token' => get_form_security_token('admin_themes'),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List themes
|
* List themes
|
||||||
*/
|
*/
|
||||||
@ -1236,7 +1260,7 @@ function admin_page_themes(&$a){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$t = get_markup_template("admin_plugins.tpl");
|
$t = get_markup_template('admin_plugins.tpl');
|
||||||
return replace_macros($t, array(
|
return replace_macros($t, array(
|
||||||
'$title' => t('Administration'),
|
'$title' => t('Administration'),
|
||||||
'$page' => t('Themes'),
|
'$page' => t('Themes'),
|
||||||
@ -1246,7 +1270,7 @@ function admin_page_themes(&$a){
|
|||||||
'$plugins' => $xthemes,
|
'$plugins' => $xthemes,
|
||||||
'$experimental' => t('[Experimental]'),
|
'$experimental' => t('[Experimental]'),
|
||||||
'$unsupported' => t('[Unsupported]'),
|
'$unsupported' => t('[Unsupported]'),
|
||||||
'$form_security_token' => get_form_security_token("admin_themes"),
|
'$form_security_token' => get_form_security_token('admin_themes'),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1256,9 +1280,8 @@ function admin_page_themes(&$a){
|
|||||||
*
|
*
|
||||||
* @param App $a
|
* @param App $a
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function admin_page_logs_post(&$a) {
|
function admin_page_logs_post(&$a) {
|
||||||
if (x($_POST,"page_logs")) {
|
if (x($_POST, 'page_logs')) {
|
||||||
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
|
check_form_security_token_redirectOnErr('/admin/logs', 'admin_logs');
|
||||||
|
|
||||||
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
|
$logfile = ((x($_POST,'logfile')) ? notags(trim($_POST['logfile'])) : '');
|
||||||
@ -1268,13 +1291,10 @@ function admin_page_logs_post(&$a) {
|
|||||||
set_config('system','logfile', $logfile);
|
set_config('system','logfile', $logfile);
|
||||||
set_config('system','debugging', $debugging);
|
set_config('system','debugging', $debugging);
|
||||||
set_config('system','loglevel', $loglevel);
|
set_config('system','loglevel', $loglevel);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
info( t("Log settings updated.") );
|
info( t('Log settings updated.') );
|
||||||
goaway($a->get_baseurl(true) . '/admin/logs' );
|
goaway($a->get_baseurl(true) . '/admin/logs' );
|
||||||
return; // NOTREACHED
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1291,7 +1311,7 @@ function admin_page_logs(&$a){
|
|||||||
LOGGER_ALL => 'All'
|
LOGGER_ALL => 'All'
|
||||||
);
|
);
|
||||||
|
|
||||||
$t = get_markup_template("admin_logs.tpl");
|
$t = get_markup_template('admin_logs.tpl');
|
||||||
|
|
||||||
$f = get_config('system', 'logfile');
|
$f = get_config('system', 'logfile');
|
||||||
|
|
||||||
@ -1338,7 +1358,7 @@ readable.");
|
|||||||
'$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Red top-level directory.")),
|
'$logfile' => array('logfile', t("Log file"), get_config('system','logfile'), t("Must be writable by web server. Relative to your Red top-level directory.")),
|
||||||
'$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
|
'$loglevel' => array('loglevel', t("Log level"), get_config('system','loglevel'), "", $log_choices),
|
||||||
|
|
||||||
'$form_security_token' => get_form_security_token("admin_logs"),
|
'$form_security_token' => get_form_security_token('admin_logs'),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1367,7 +1387,6 @@ function admin_page_profs_post(&$a) {
|
|||||||
// add to chosen array basic or advanced
|
// add to chosen array basic or advanced
|
||||||
|
|
||||||
goaway(z_root() . '/admin/profs');
|
goaway(z_root() . '/admin/profs');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function admin_page_profs(&$a) {
|
function admin_page_profs(&$a) {
|
||||||
@ -1390,7 +1409,6 @@ function admin_page_profs(&$a) {
|
|||||||
'$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')),
|
'$field_help' => array('field_help',t('Help text'),$_REQUEST['field_help'],t('Additional info (optional)')),
|
||||||
'$submit' => t('Save')
|
'$submit' => t('Save')
|
||||||
));
|
));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if((argc() > 2) && intval(argv(2))) {
|
if((argc() > 2) && intval(argv(2))) {
|
||||||
@ -1414,8 +1432,3 @@ function admin_page_profs(&$a) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,36 +1,32 @@
|
|||||||
<div class="generic-content-wrapper-styled" id='adminpage'>
|
<div class="generic-content-wrapper-styled" id='adminpage'>
|
||||||
<h1>{{$title}} - {{$page}}</h1>
|
<h1>{{$title}} - {{$page}}</h1>
|
||||||
|
{{if $adminalertmsg}}
|
||||||
|
<p class="alert alert-warning" role="alert">{{$adminalertmsg}}</p>
|
||||||
|
{{/if}}
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{$queues.label}}</dt>
|
<dt>{{$queues.label}}</dt>
|
||||||
<dd>{{$queues.queue}}</dd>
|
<dd>{{$queues.queue}}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>{{$accounts.0}}</dt>
|
||||||
|
<dd>{{foreach from=$accounts.1 item=acc name=account}}<span title="{{$acc.label}}">{{$acc.val}}</span>{{if !$smarty.foreach.account.last}} / {{/if}}{{/foreach}}</dd>
|
||||||
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{$pending.0}}</dt>
|
<dt>{{$pending.0}}</dt>
|
||||||
<dd>{{$pending.1}}</dt>
|
<dd>{{$pending.1}}</dt>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{$users.0}}</dt>
|
<dt>{{$channels.0}}</dt>
|
||||||
<dd>{{$users.1}}</dd>
|
<dd>{{foreach from=$channels.1 item=ch name=chan}}<span title="{{$ch.label}}">{{$ch.val}}</span>{{if !$smarty.foreach.chan.last}} / {{/if}}{{/foreach}}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<!-- $accounts is empty
|
|
||||||
{{foreach $accounts as $p}}
|
|
||||||
<dl>
|
|
||||||
<dt>{{$p.0}}</dt>
|
|
||||||
<dd>{{if $p.1}}{{$p.1}}{{else}}0{{/if}}</dd>
|
|
||||||
</dl>
|
|
||||||
{{/foreach}} -->
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{$plugins.0}}</dt>
|
<dt>{{$plugins.0}}</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{{foreach $plugins.1 as $p}} {{$p}} {{/foreach}}
|
{{foreach $plugins.1 as $p}} {{$p}} {{/foreach}}
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>{{$version.0}}</dt>
|
<dt>{{$version.0}}</dt>
|
||||||
<dd>{{$version.1}} - {{$build}}</dd>
|
<dd>{{$version.1}} - {{$build}}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
</div>
|
</div>
|
@ -10,15 +10,15 @@
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<div class = "generic-content-wrapper-styled" id='adminpage'>
|
<div class="generic-content-wrapper-styled" id="adminpage">
|
||||||
<h1>{{$title}} - {{$page}}</h1>
|
<h1>{{$title}} - {{$page}}</h1>
|
||||||
|
|
||||||
<form action="{{$baseurl}}/admin/users" method="post">
|
<form action="{{$baseurl}}/admin/users" method="post">
|
||||||
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
|
<input type="hidden" name="form_security_token" value="{{$form_security_token}}">
|
||||||
|
|
||||||
<h3>{{$h_pending}}</h3>
|
<h3>{{$h_pending}}</h3>
|
||||||
{{if $pending}}
|
{{if $pending}}
|
||||||
<table id='pending'>
|
<table id="pending">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{foreach $th_pending as $th}}<th>{{$th}}</th>{{/foreach}}
|
{{foreach $th_pending as $th}}<th>{{$th}}</th>{{/foreach}}
|
||||||
@ -31,27 +31,25 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td class="created">{{$u.account_created}}</td>
|
<td class="created">{{$u.account_created}}</td>
|
||||||
<td class="email">{{$u.account_email}}</td>
|
<td class="email">{{$u.account_email}}</td>
|
||||||
<td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$u.hash}}" name="pending[]" value="{{$u.hash}}" /></td>
|
<td class="checkbox"><input type="checkbox" class="pending_ckbx" id="id_pending_{{$u.hash}}" name="pending[]" value="{{$u.hash}}"></td>
|
||||||
<td class="tools">
|
<td class="tools">
|
||||||
<a href="{{$baseurl}}/regmod/allow/{{$u.hash}}" title='{{$approve}}'><i class='icon-thumbs-up-alt admin-icons'></i></a>
|
<a href="{{$baseurl}}/regmod/allow/{{$u.hash}}" title="{{$approve}}"><i class="icon-thumbs-up-alt admin-icons"></i></a>
|
||||||
<a href="{{$baseurl}}/regmod/deny/{{$u.hash}}" title='{{$deny}}'><i class='icon-thumbs-down-alt admin-icons'></i></a>
|
<a href="{{$baseurl}}/regmod/deny/{{$u.hash}}" title="{{$deny}}"><i class="icon-thumbs-down-alt admin-icons"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class='selectall'><a href='#' onclick="return selectall('pending_ckbx');">{{$select_all}}</a></div>
|
<div class="selectall"><a href="#" onclick="return selectall('pending_ckbx');">{{$select_all}}</a></div>
|
||||||
<div class="submit"><input type="submit" name="page_users_deny" value="{{$deny}}"/> <input type="submit" name="page_users_approve" value="{{$approve}}" /></div>
|
<div class="submit"><input type="submit" name="page_users_deny" value="{{$deny}}"> <input type="submit" name="page_users_approve" value="{{$approve}}"></div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<p>{{$no_pending}}</p>
|
<p>{{$no_pending}}</p>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>{{$h_users}}</h3>
|
<h3>{{$h_users}}</h3>
|
||||||
{{if $users}}
|
{{if $users}}
|
||||||
<table id='users'>
|
<table id="users">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
{{foreach $th_users as $th}}<th>{{$th}}</th>{{/foreach}}
|
{{foreach $th_users as $th}}<th>{{$th}}</th>{{/foreach}}
|
||||||
@ -62,28 +60,28 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
{{foreach $users as $u}}
|
{{foreach $users as $u}}
|
||||||
<tr>
|
<tr>
|
||||||
<td class='account_id'>{{$u.account_id}}</td>
|
<td class="account_id">{{$u.account_id}}</td>
|
||||||
<td class='email'>{{if $u.blocked}}
|
<td class="email">{{if $u.blocked}}
|
||||||
<i>{{$u.account_email}}</i>
|
<i>{{$u.account_email}}</i>
|
||||||
{{else}}
|
{{else}}
|
||||||
<strong>{{$u.account_email}}</strong>
|
<strong>{{$u.account_email}}</strong>
|
||||||
{{/if}}</td>
|
{{/if}}</td>
|
||||||
<td class='channels'>{{$u.channels}}</td>
|
<td class="channels">{{$u.channels}}</td>
|
||||||
<td class='register_date'>{{$u.account_created}}</td>
|
<td class="register_date">{{$u.account_created}}</td>
|
||||||
<td class='login_date'>{{$u.account_lastlog}}</td>
|
<td class="login_date">{{$u.account_lastlog}}</td>
|
||||||
<td class='account_expires'>{{$u.account_expires}}</td>
|
<td class="account_expires">{{$u.account_expires}}</td>
|
||||||
<td class='service_class'>{{$u.account_service_class}}</td>
|
<td class="service_class">{{$u.account_service_class}}</td>
|
||||||
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_{{$u.account_id}}" name="user[]" value="{{$u.account_id}}"/></td>
|
<td class="checkbox"><input type="checkbox" class="users_ckbx" id="id_user_{{$u.account_id}}" name="user[]" value="{{$u.account_id}}"><input type="hidden" name="blocked[]" value="{{$u.blocked}}"></td>
|
||||||
<td class="tools">
|
<td class="tools">
|
||||||
<a href="{{$baseurl}}/admin/users/block/{{$u.account_id}}?t={{$form_security_token}}" title='{{if ($u.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class='icon-ban-circle admin-icons {{if ($u.blocked)}}dim{{/if}}'></i></a>
|
<a href="{{$baseurl}}/admin/users/{{if ($u.blocked)}}un{{/if}}block/{{$u.account_id}}?t={{$form_security_token}}" title='{{if ($u.blocked)}}{{$unblock}}{{else}}{{$block}}{{/if}}'><i class="icon-ban-circle admin-icons{{if ($u.blocked)}} dim{{/if}}"></i></a>
|
||||||
<a href="{{$baseurl}}/admin/users/delete/{{$u.account_id}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><i class='icon-trash admin-icons'></i></a>
|
<a href="{{$baseurl}}/admin/users/delete/{{$u.account_id}}?t={{$form_security_token}}" title='{{$delete}}' onclick="return confirm_delete('{{$u.name}}')"><i class="icon-trash admin-icons"></i></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<div class='selectall'><a href='#' onclick="return selectall('users_ckbx');">{{$select_all}}</a></div>
|
<div class="selectall"><a href="#" onclick="return selectall('users_ckbx');">{{$select_all}}</a></div>
|
||||||
<div class="submit"><input type="submit" name="page_users_block" value="{{$block}}/{{$unblock}}" /> <input type="submit" name="page_users_delete" value="{{$delete}}" onclick="return confirm_delete_multi()" /></div>
|
<div class="submit"><input type="submit" name="page_users_block" value="{{$block}}/{{$unblock}}"> <input type="submit" name="page_users_delete" value="{{$delete}}" onclick="return confirm_delete_multi()"></div>
|
||||||
{{else}}
|
{{else}}
|
||||||
NO USERS?!?
|
NO USERS?!?
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
Reference in New Issue
Block a user