BeCastWebEngine/admin/editgroup.apnl.php
2025-06-24 21:56:48 +02:00

222 lines
8.6 KiB
PHP

<?php global $session;
/**
* Project: astat - simple site engine
* File: /admin/editgroup.apnl.php
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* @link http://www.astat.org SVN: $URL$
* @copyright 2009 becast.at
* @author Bernhard Jaud <bernhard at becast dot at>
* @package astat core
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
*/
If (!defined("IN_BCWE_ADMIN")) {
die("Dieses Script kann nicht ausserhalb des Frameworks laufen!");
}
$addnav["right"]=FALSE;
$session->page_begin("editgroup", True);
class editgroup_panel extends admin_module{
function output(){
global $session,$config,$db,$panel,$admin,$module,$root,$firephp,$log;
if(isset($_GET["editgroup"]) && $_GET["editgroup"]!=""){
if(isset($_POST["send"]) && !empty($_POST["name"]) && !empty($_POST["group"])){
if(!empty($_POST["name"])){
$id=intval($_POST["group"]);
$db->query("UPDATE `" . $config["prefix"] . "role` SET `role_name`='".$db->escape($_POST["name"])."' WHERE id='".$id."'");
unset($_POST["name"]);
unset($_POST["submit"]);
unset($_POST["send"]);
unset($_POST["group"]);
$db->query("DELETE FROM `" . $config["prefix"] . "roleset` WHERE `role_id`='".$id."'");
foreach($_POST as $key=>$value){
$db->query("INSERT INTO `" . $config["prefix"] . "roleset` (`role_id`,`role_value_id`,`value`) VALUES ('".$id."','".intval($key)."','".$db->escape($value)."')");
}
$panel->admin_message("Daten &uuml;bernommen!","Die Daten wurden erfolgreich &uuml;bernommen.",True,"editgroup",3);
}else{
$panel->admin_message("Fehler!","Der Rollenname muss ausgef&uuml;llt werden.",True,"editgroup",3);
}
}else{
$result = $db->query("SELECT * FROM `" . $config["prefix"] . "role` WHERE id='".intval($_GET["editgroup"])."'");
$data = $db->fetch_array($result);
$panel->title="Gruppe editieren";
$panel->content='Hier kann man Benutzergruppen bearbeiten.';
$panel->form(array("action"=>$config["path"]."/admin/index.php?panel=editgroup&amp;editgroup=".$data["id"]));
$panel->content.="<h3>Gruppename:</h3>";
$panel->field(array("name"=>"name","typ"=>"text","value"=>$data["role_name"]));
$panel->content.="<br /><br />";
$panel->content.="<table style=\"width: 90%; border-spacing: 2px;\">
<tr>
<th><strong>Rechte</strong></th>
</tr>";
$drow = array();
$result = $db->query("SELECT * FROM `" . $config["prefix"] . "role_values`");
while ($row = $db->fetch_array($result)){
$rval =$db->fetch_array($db->query("SELECT `value` FROM `" . $config["prefix"] . "roleset` WHERE role_value_id='".$row["id"]."' AND role_id='".$data["id"]."'"));
if(empty($rval["value"])){
$rval["value"] = 0;
}
$panel->content.="<tr><td><strong>".$row["text"].":</strong><br />".$panel->get_option($row["type"],$row["id"],$rval["value"])."</td></tr>";
}
$panel->content.="</table><br />";
$panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1"));
$panel->field(array("name"=>"group","typ"=>"hidden","value"=>$data["id"]));
$panel->content.="<br />";
$panel->submit();
$panel->formClose();
$panel->parse_page();
}
}elseif(isset($_GET["action"]) && $_GET["action"]=="delete" && isset($_GET["group"])){
$result=$db->query("SELECT id FROM `" . $config["prefix"] . "role` where `role_name`='User' LIMIT 1");
$row = $db->fetch_array($result);
$db->query("UPDATE `" . $config["prefix"] . "users` SET `role`='".$row["id"]."' WHERE `role`='".intval($_GET["group"])."'");
$db->query("DELETE FROM `" . $config["prefix"] . "role` WHERE id='".intval($_GET["group"])."'");
$db->query("DELETE FROM `" . $config["prefix"] . "roleset` WHERE role_id='".intval($_GET["group"])."'");
$panel->admin_message("Usergruppe gel&ouml;scht!","Die Gruppe wurde erfolgreich gel&ouml;scht.",True,"editgroup",3);
}else{
$result=$db->query("SELECT * FROM `" . $config["prefix"] . "role`");
while ($row = $db->fetch_array($result)){
$role[]=$row;
}
$panel->title="Vorhandene Rollen";
$panel->content.="<table class=\"sortable\" style=\"width: 90%; border-spacing: 2px;\">
<tr>
<th style=\"text-align: center;\">ID</th>
<th style=\"text-align: center;\">Name</th>
<th class=\"nosort sortcol\" style=\"text-align: center; width: 18%\">Aktionen</th>
</tr>";
if(!empty($role)){
foreach($role as $u){
$panel->content.="<tr>
<td style=\"text-align: center;\">".$u["id"]."</td>
<td style=\"text-align: center;\">".$u["role_name"]."</td>";
if(!$u["special_group"]){
$panel->content.="<td style=\"text-align: center;\"><a onclick=\"return confirmLink(this, 'Willst du wirklich die Gruppe ".$u["role_name"]." l&ouml;schen? Alle Mitglieder dieser Gruppe werden der Gruppe User zugeordnet')\" href=\"".$config["path"]."/admin/index.php?panel=editgroup&amp;action=delete&amp;group=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/delete.png\" /></a> <a href=\"".$config["path"]."/admin/index.php?panel=editgroup&amp;editgroup=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/wrench.png\" /></a></td>
</tr>";
}else{
$panel->content.="<td style=\"text-align: center;\"><a href=\"".$config["path"]."/admin/index.php?panel=editgroup&amp;editgroup=".$u["id"]."\"><img src=\"".$config["path"]."/admin/images/icons/wrench.png\" /></a></td></td>
</tr>";
}
}
}else{
$panel->content.="<tr>
<td style=\"text-align: center;\" colspan=\"5\">Keine Rollen vorhanden.</td>
</tr>";
}
$panel->content.="</table><br />";
}
}
function meta() {
global $module,$config,$db,$panel,$userinfo,$admin,$root;
$meta='<script type="text/javascript" src="'.$config["path"].'/js/scriptaculous/prototype.js"></script>
<script src="'.$config["path"].'/js/fastinit.js" type="text/javascript">
</script>
<script src="'.$config["path"].'/js/tablesort.js" type="text/javascript">
</script>
<script type="text/javascript">
function deleteItem(item) {
if(confirmLink(this, "Willst du wirklich dieses Modul deinstallieren? Alle Daten diese Moduls werden gel&ouml;scht!")==true){
name="id_"+item;
Effect.SwitchOff(name);
new Ajax.Request(\'index.php?panel=navigation\' , {
method: "post",
parameters: {delete:name}});
}
return false;
}
</script>
<style type="text/css">
.loadlayer {
position: absolute;
padding: 15px;
width: 250px;
background: #ffffff;
border: 3px solid #c90000;
text-align: center;
margin-top: 60px;
left: 50%;
margin-left: -150px;
margin-top: 100px;
font-weight: bold;
z-index:5;
}
div.section,div#createNew {
border: 1px solid #CCCCCC;
margin: 30px 5px;
padding: 0px 0px 10px 0px;
background-color: #EFEFEF;
}
div#createNew input { margin-left: 5px; }
div#createNew h3, div.section h3{
font-size: 14px;
padding: 2px 5px;
margin: 0 0 10px 0;
background-color: #CCCCCC;
display: block;
}
div.section h3 {
cursor: move;
}
div.lineitem {
margin: 3px 10px;
padding: 2px;
background-color: #FFFFFF;
cursor: move;
}
h1 {
margin-bottom: 0;
font-size: 18px;
}
</style>
<script type="text/javascript">
function confirmLink(theLink, text)
{
// Confirmation is not required in the configuration file
// or browser is Opera (crappy js implementation)
if (typeof(window.opera) != \'undefined\') {
return true;
}
var is_confirmed = confirm(text);
if (is_confirmed) {
if ( typeof(theLink.href) != \'undefined\' ) {
theLink.href += \'&is_js_confirmed=1\';
} else if ( typeof(theLink.form) != \'undefined\' ) {
theLink.form.action += \'?is_js_confirmed=1\';
}
}
return is_confirmed;
}
</script>';
return $meta;
}
}
?>