LuckyCoinkydink/include/admin/groups.inc.php

132 lines
4.4 KiB
PHP

<?php # $Id:$
if (IN_serendipity !== true) {
die ('Don\'t hack!');
}
if (!serendipity_checkPermission('adminUsersGroups')) {
return;
}
$data = array();
/* Delete a group */
if (isset($_POST['DELETE_YES']) && serendipity_checkFormToken()) {
$group = serendipity_fetchGroup($serendipity['POST']['group']);
serendipity_deleteGroup($serendipity['POST']['group']);
$data['delete_yes'] = true;
$data['group_id'] = $serendipity['POST']['group'];
$data['group'] = $group;
}
/* Save new group */
if (isset($_POST['SAVE_NEW']) && serendipity_checkFormToken()) {
$serendipity['POST']['group'] = serendipity_addGroup($serendipity['POST']['name']);
$perms = serendipity_getAllPermissionNames();
serendipity_updateGroupConfig($serendipity['POST']['group'], $perms, $serendipity['POST'], false, $serendipity['POST']['forbidden_plugins'], $serendipity['POST']['forbidden_hooks']);
$data['save_new'] = true;
$data['group_id'] = $serendipity['POST']['group'];
$data['group'] = $group;
}
/* Edit a group */
if (isset($_POST['SAVE_EDIT']) && serendipity_checkFormToken()) {
$perms = serendipity_getAllPermissionNames();
serendipity_updateGroupConfig($serendipity['POST']['group'], $perms, $serendipity['POST'], false, $serendipity['POST']['forbidden_plugins'], $serendipity['POST']['forbidden_hooks']);
$data['save_edit'] = true;
$data['name'] = $serendipity['POST']['name'];
}
if ( $serendipity['GET']['adminAction'] != 'delete' ) {
$data['delete'] = false;
if (serendipity_checkPermission('adminUsersMaintainOthers')) {
$groups = serendipity_getAllGroups();
} elseif (serendipity_checkPermission('adminUsersMaintainSame')) {
$groups = serendipity_getAllGroups($serendipity['authorid']);
} else {
$groups = array();
}
$data['groups'] = $groups;
if ( !isset($_POST['NEW']) ) {
$data['start'] = true;
}
$data['deleteFormToken'] = serendipity_setFormToken('url');
}
if ($serendipity['GET']['adminAction'] == 'edit' || isset($_POST['NEW'])) {
if (isset($_POST['NEW'])) {
$data['new'] = true;
} else {
$data['edit'] = true;
}
$data['formToken'] = serendipity_setFormToken();
if ($serendipity['GET']['adminAction'] == 'edit') {
$group = serendipity_fetchGroup($serendipity['GET']['group']);
$from = &$group;
} else {
$from = array();
}
$data['from'] = $from;
$allusers = serendipity_fetchUsers();
$users = serendipity_getGroupUsers($from['id']);
$selected = array();
foreach((array)$users AS $user) {
$selected[$user['id']] = true;
}
$data['selected'] = $selected;
$data['allusers'] = $allusers;
$perms = serendipity_getAllPermissionNames();
ksort($perms);
$data['perms'] = $perms;
foreach($perms AS $perm => $userlevels) {
if (defined('PERMISSION_' . strtoupper($perm))) {
$data['perms'][$perm]['permission_name'] = constant('PERMISSION_' . strtoupper($perm));
} else {
$data['perms'][$perm]['permission_name'] = $perm;
}
if (!serendipity_checkPermission($perm) && $perm != 'hiddenGroup') {
$data['perms'][$perm]['permission'] = false;
} else {
$data['perms'][$perm]['permission'] = true;
}
}
if ($serendipity['enablePluginACL']) {
$data['enablePluginACL'] = true;
$allplugins =& serendipity_plugin_api::get_event_plugins();
$allhooks = array();
$data['allplugins'] = $allplugins;
foreach($allplugins AS $plugid => $currentplugin) {
foreach($currentplugin['b']->properties['event_hooks'] AS $hook => $set) {
$allhooks[$hook] = true;
}
$data['allplugins'][$plugid]['has_permission'] = serendipity_hasPluginPermissions($plugid, $from['id']);
}
ksort($allhooks);
$data['allhooks'] = $allhooks;
foreach($allhooks AS $hook => $set) {
$data['allhooks'][$hook]['has_permission'] = serendipity_hasPluginPermissions($hook, $from['id']);
}
}
} elseif ($serendipity['GET']['adminAction'] == 'delete') {
$data['delete'] = true;
$group = serendipity_fetchGroup($serendipity['GET']['group']);
$data['group_id'] = $serendipity['GET']['group'];
$data['group'] = $group;
$data['formToken'] = serendipity_setFormToken();
}
echo serendipity_smarty_show('admin/groups.inc.tpl', $data);
/* vim: set sts=4 ts=4 expandtab : */
?>