* @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 übernommen!","Die Daten wurden erfolgreich übernommen.",True,"editgroup",3);
}else{
$panel->admin_message("Fehler!","Der Rollenname muss ausgefü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&editgroup=".$data["id"]));
$panel->content.="
Gruppename:
";
$panel->field(array("name"=>"name","typ"=>"text","value"=>$data["role_name"]));
$panel->content.="
";
$panel->content.="
Rechte |
";
$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"]."'"));
$row["value"]=$rval["value"];
$rdata[]=$row;
}
foreach ($rdata as $d){
$panel->content.="".$d["text"].": ".$this->get_option($d["type"],$d["id"],$d["value"])." |
";
}
$panel->content.="
";
$panel->field(array("name"=>"send","typ"=>"hidden","value"=>"1"));
$panel->field(array("name"=>"group","typ"=>"hidden","value"=>$data["id"]));
$panel->content.="
";
$panel->submit();
$panel->formClose();
$panel->parse_page();
}
}elseif($_GET["action"]=="delete" && $_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öscht!","Die Gruppe wurde erfolgreich gelö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.="
ID |
Name |
Aktionen |
";
if(!empty($role)){
foreach($role as $u){
$panel->content.="
".$u["id"]." |
".$u["role_name"]." | ";
if(!$u["special_group"]){
$panel->content.="  |
";
}else{
$panel->content.=" |
";
}
}
}else{
$panel->content.="
Keine Rollen vorhanden. |
";
}
$panel->content.="
";
}
}
function get_option($option,$name,$value) {
global $config,$db,$panel,$userinfo,$admin,$root,$firephp;
if($option=="yesno"){
$checked["yes"]="";
$checked["no"]="";
if($value==1||$value==True||$value=="yes"){
$checked["yes"]='checked="checked"';
}else{
$checked["no"]='checked="checked"';
}
$yn=$panel->radio(array("name"=>$name,"value"=>"1"),$checked["yes"],TRUE);
$yn.="Ja";
$yn.=$panel->radio(array("name"=>$name,"value"=>"0"),$checked["no"],TRUE);
$yn.="Nein";
return $yn;
}
if($option=="onoff"){
$checked["on"]="";
$checked["off"]="";
if($value==1||$value==True||$value=="on"){
$checked["on"]='checked="checked"';
}else{
$checked["off"]='checked="checked"';
}
$yn=$panel->radio(array("name"=>$name,"value"=>"1"),$checked["on"],TRUE);
$yn.="An";
$yn.=$panel->radio(array("name"=>$name,"value"=>"0"),$checked["off"],TRUE);
$yn.="Aus";
return $yn;
}
if($option=="text"){
$text=$panel->field(array("name"=>$name,"typ"=>"text","value"=>$value),"",TRUE);
return $text;
}
if(strstr($option,"wysiwyg")){
$string=str_replace("wysiwyg(","",substr($option, 0, -1));
$sarr=explode(";",$string);
foreach($sarr as $str){
$substr=explode("|",$str);
$a_name[]=$substr[0];
$value[]=$substr[1];
}
if(is_array($sarr)){
$text=$panel->textarea(array("name"=>$name,"value"=>$value, $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"class=\"mceEditor\"",TRUE);
}else{
$text=$panel->textarea(array("name"=>$name,"value"=>$value),"class=\"mceEditor\"",TRUE);
}
return $text;
}
if(strstr($option,"textarea")){
$string=str_replace("textarea(","",substr($option, 0, -1));
$sarr=explode(";",$string);
foreach($sarr as $str){
$substr=explode("|",$str);
$a_name[]=$substr[0];
$value[]=$substr[1];
}
if(is_array($sarr)){
$text=$panel->textarea(array("name"=>$name,"value"=>$value, $a_name[0]=>$value[0],$a_name[1]=>$value[1]),"",TRUE);
}else{
$text=$panel->textarea(array("name"=>$name,"value"=>$value),"",TRUE);
}
return $text;
}
if(strstr($option,"select")){
//$text=$panel->field("text",$name,"value=\"".$config[$name]."\"",TRUE);
$string=str_replace("select(","",substr($option, 0, -1));
$sarr=explode(";",$string);
foreach($sarr as $str){
$substr=explode("|",$str);
$values[$substr[0]]=$substr[1];
}
$select=$panel->select($values,$value,$name,"",TRUE);
return $select;
}
}
function meta() {
global $module,$config,$db,$panel,$userinfo,$admin,$root;
$meta='
';
return $meta;
}
}
?>