fhiiqm/recht_ed.php
changeset 16 3ebe66308a00
child 17 f990704af47b
equal deleted inserted replaced
15:1ed6fbdf4237 16:3ebe66308a00
       
     1 <?php
       
     2 
       
     3 /**
       
     4  * @author Bettina Schwarzer, Fritz-Haber-Institut
       
     5  * @copyright 10/2011
       
     6  *
       
     7  * INSERT/UPDATE/DELETE Rechte   
       
     8  */
       
     9 
       
    10     error_reporting(E_ALL ^ E_NOTICE);
       
    11 
       
    12     session_start();
       
    13     if (! isset($_SESSION["userid"]))
       
    14     { 
       
    15         include_once ("inc/func_lib.inc.php");	
       
    16         login($_SERVER["PHP_SELF"]);
       
    17         exit;
       
    18     }
       
    19     
       
    20     if (is_null($_SESSION["recht"]) || (!is_null($_SESSION["recht"]) && !in_array("rte",$_SESSION["recht"]) && !in_array("rtr",$_SESSION["recht"])))
       
    21     {
       
    22         header("Location: start.php");
       
    23         exit;
       
    24     }    
       
    25     
       
    26 ?>    
       
    27 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
       
    28 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
       
    29 
       
    30 <head>
       
    31 	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
       
    32     <link type="text/css" href="/fhiiqm/css/db.css" rel="Stylesheet" />	
       
    33     <link type="text/css" href="/fhiiqm/css/jquery/ui-lightness/jquery-ui-1.8.16.custom.css" rel="Stylesheet" />	
       
    34     <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-1.6.2.min.js"></script>
       
    35     <script type="text/javascript" src="/fhiiqm/js/jquery/jquery-ui-1.8.16.custom.min.js"></script>
       
    36 	<title>Nutzer &amp; Rechte</title>
       
    37 </head>
       
    38 
       
    39 <body>
       
    40     
       
    41     <script>
       
    42       $(document).ready(function() {
       
    43         $("#persknr").focus();
       
    44         $("#persknr").autocomplete({
       
    45                 source: "/fhiiqm/inc/ma_list_ac.inc.php",
       
    46     			minLength: 2,
       
    47                 select: function(event,ui){$("#pid").val(ui.item.id);}
       
    48     		});
       
    49         $("input").filter("long20").addClass("long20");
       
    50         });
       
    51     </script>
       
    52 
       
    53 <?php
       
    54     echo "&nbsp;";  
       
    55     echo "<div class=\"float-br smaller\" valign='top'>";
       
    56     echo "&nbsp;&nbsp;&nbsp;user: " . $_SESSION["userid"];
       
    57     echo "&nbsp;&nbsp;&nbsp;<a class='sc' href='/fhiiqm/logout.php' title='Session beenden'>logout</a></div>\n";
       
    58     echo "<div class=\"float-r\"><img src=\"img/user_go.png\" border=\"0\" alt=\"User, Rechte eingeben\" title=\"User, Rechte eingeben\"/></div>\n";
       
    59 
       
    60 	include_once($_SERVER['DOCUMENT_ROOT'] ."/fhiiqm/inc/dbconnect.inc.php");
       
    61 	if (!isset($dbc) || !$dbc) $dbc = new dbconnection();
       
    62     
       
    63 	$pget   = $_GET["pid"];
       
    64     $ok     = $_POST["ok"];
       
    65 	$ins	= $_POST["ins"];
       
    66 	$del	= $_POST["del"];
       
    67     $rt     = $_POST["rt"];
       
    68     if (!$rt['okn']) $ok=false;
       
    69 // print_r($rt); echo "$ins, $del<br />";    
       
    70     if (!$ok || (!$ins && !$del))
       
    71     {
       
    72         if ($pget && !$ins && !$del)
       
    73         {
       
    74             // Daten zu Mitarbeiter bereitstellen
       
    75             $rt["pid"] = $pget;
       
    76             $sql = "SELECT userid FROM fhiiqm.userweb WHERE persknr = $pget";
       
    77             if ($userid = $dbc->querySingleItem($sql))
       
    78             {
       
    79                 $rt["userid"] = $userid;
       
    80                 $sql = "SELECT CONCAT (nachname, ', ',vorname) AS ma FROM fhiiqm.Mitarbeiter WHERE persknr = $pget";
       
    81                 if ($result = $dbc -> queryObjectArray($sql))
       
    82                     foreach ($result as $row)
       
    83                         $rt["pers"] = $row->ma;
       
    84                 $sql = "SELECT recht_ID FROM fhiiqm.user_recht WHERE userid = '$userid'";
       
    85                 if ($resr = $dbc -> queryObjectArray($sql))
       
    86                     foreach ($resr as $row)
       
    87                         $rt["recht"][] = $row->recht_ID;
       
    88                 $sql = "SELECT prod_group_ID FROM fhiiqm.user_prodgroup WHERE userid = '$userid'";
       
    89                 if ($resg = $dbc -> queryObjectArray($sql))
       
    90                     foreach ($resg as $row)
       
    91                         $rt["prodg"][] = $row->prod_group_ID;
       
    92             }
       
    93         }
       
    94         
       
    95         include_once("form/recht_form.inc.php");
       
    96 
       
    97         if ($ins || $del)
       
    98 		{
       
    99     
       
   100 		  	if ($ins) $frage = "Alle Angaben ok?"; else $frage = "Nutzer und seine Rechte wirklich löschen?";
       
   101 			echo "<tr>
       
   102 			  <td class=\"red\" valign=\"top\" align=\"left\">$frage</td>
       
   103 			        <td><input type=\"checkbox\" name=\"ok\" value=\"1\"";
       
   104 			        if ($ok)  echo "checked"; 
       
   105 			echo "></td>\n</tr>\n"; 
       
   106 		}
       
   107 		
       
   108         if (!is_null($_SESSION["recht"]) && in_array("rte", $_SESSION["recht"]))
       
   109         {
       
   110     		if ($pget || $rt["pget"]) $sub = "&auml;ndern"; else $sub = "eingeben";
       
   111                 
       
   112             echo "<tr>\n";
       
   113     		echo "
       
   114     		  <td>&nbsp;</td>
       
   115     		  <td><input class=\"button\" type=\"submit\" value=\"$sub\" name=\"ins\" title=\"$sub\" />";
       
   116             if ($pget || $rt["pget"])
       
   117                 echo "&nbsp;&nbsp;&nbsp;<input class=\"button\" type=\"submit\" value=\"l&ouml;schen\" name=\"del\" title=\"delete\" />";         
       
   118             echo  "</td>\n";;
       
   119     		echo "</tr>\n";
       
   120         }
       
   121         echo "</table>\n";
       
   122         echo "</div>\n";
       
   123         if (!is_null($_SESSION["recht"]) && !in_array("rte", $_SESSION["recht"]))
       
   124             echo "<p>&nbsp;&nbsp;&nbsp;<a href=\"recht_list.php\" target=\"_self\" title=\"Nutzerliste\">&laquo; zur Nutzerliste</a></p>\n"; 
       
   125         echo "</form>\n";	
       
   126 
       
   127     }
       
   128     elseif ($ok && ($ins || $del))
       
   129     {
       
   130         echo "<div align='center'>\n";
       
   131         //daten speichern
       
   132         
       
   133         if ($ins == "eingeben")
       
   134         {
       
   135             // pruefen, ob userid schon existiert
       
   136             $sql = "SELECT persknr, userid FROM fhiiqm.userweb WHERE userid = '" . $rt["userid"] . "'";
       
   137             if ($result = $dbc ->queryObjectArray($sql))
       
   138             {
       
   139                 foreach ($result as $row)
       
   140                 { 
       
   141                     echo "<p class='red'>User-ID <b>" . $rt["userid"] ."</b> ist schon vorhanden!</p>";
       
   142                     $erruid = 1;
       
   143                 }
       
   144             }
       
   145         }
       
   146         else
       
   147         {
       
   148             // alte Rechte loeschen
       
   149             $sql = "DELETE FROM fhiiqm.user_recht WHERE userid ='" . $rt["userid"] . "'";
       
   150             $resr = $dbc -> execute($sql);
       
   151             $sql = "DELETE FROM fhiiqm.user_prodgroup WHERE userid ='" . $rt["userid"] . "'";
       
   152             $resp = $dbc -> execute($sql);
       
   153             if (!$resr || !$resp) $erruid = 1;
       
   154         }    
       
   155         if ($del)
       
   156         {
       
   157             // User loeschen
       
   158             $sql = "DELETE FROM fhiiqm.userweb WHERE userid ='" . $rt["userid"] . "'";
       
   159             $res = $dbc -> execute($sql);
       
   160             if ($res) 
       
   161                 echo "<p class='green'><b>User-ID '".$rt["userid"]."' und zugeordete Rechte wurden gel&ouml;scht.</b></p>\n";
       
   162             else
       
   163                  echo "<p class='red'><b>L&ouml;schen von User-ID '".$rt["userid"]."' und zugeordeter Rechte ist fehlgeschlagen.</b></p>\n";
       
   164             $erruid = 1;    // 
       
   165         }
       
   166         if (!$erruid)
       
   167         {   // Rechte speichern
       
   168             $stmt = $dbc -> stmtinit();
       
   169             if (is_object($stmt))
       
   170             {
       
   171                 $result = 1;
       
   172                 if ($ins == "eingeben")
       
   173                 {
       
   174                     $stmt -> prepare("INSERT INTO fhiiqm.userweb (persknr, userid) VALUES (?,?)");
       
   175                     $stmt -> bind_param('is',$rt["pid"],$rt["userid"]);
       
   176                     $result = $stmt -> execute();
       
   177                     if ($stmt->error) echo "error userweb: " . $stmt->errno." -> ".$stmt->error . "<br><br>\n";
       
   178                     $stmt -> reset();
       
   179                 }
       
   180                 if ($result)
       
   181                 {
       
   182                     $resr = 1;
       
   183                     if (is_array($rt["recht"]) && !is_null($rt["recht"]))
       
   184                     {
       
   185                         $stmt -> prepare("INSERT INTO fhiiqm.user_recht (userid,recht_ID) VALUES (?,?)");
       
   186                         foreach ($rt["recht"] as $re)
       
   187                         {
       
   188                                 $stmt -> bind_param('ss',$rt["userid"],$re);
       
   189                                 $resr = $stmt -> execute();
       
   190                         }
       
   191                         $stmt -> reset();
       
   192                     }
       
   193                     if ($stmt->error) echo "error user_recht: " . $stmt->errno." -> ".$stmt->error . "<br><br>\n";
       
   194                     $resp = 1;            
       
   195                     if (is_array($rt["prodg"]) && !is_null($rt["prodg"]))
       
   196                     {
       
   197                         echo "userid = " . $rt["userid"] . "<br />";
       
   198                         $stmt -> prepare("INSERT INTO fhiiqm.user_prodgroup (userid,prod_group_ID) VALUES (?,?)");
       
   199                         foreach ($rt["prodg"] as $re)
       
   200                         {
       
   201                                 $stmt -> bind_param('ss',$rt["userid"],$re);
       
   202                                 $resp = $stmt -> execute();
       
   203                         }
       
   204                     }
       
   205                     if ($stmt->error) echo "error user_prodgroup: " . $stmt->errno." -> ".$stmt->error . "<br><br>\n";
       
   206                     
       
   207                 }
       
   208                 $stmt -> close();      
       
   209             }
       
   210             if ($result && $resr && $resp)
       
   211                 echo "<p class='green'><b>User-ID '".$rt["userid"]."' und zugeordete Rechte wurden erfolgreich gespeichert.</b></p>\n";
       
   212             else
       
   213                 echo "<p class='red'><b>Speichern von User-ID '".$rt["userid"]."' und zugeordeter Rechte war nicht erfolgreich.</b></p>\n";
       
   214         }
       
   215         $dbc -> close();
       
   216         echo "</div>\n";
       
   217         echo "<p>&nbsp;&nbsp;&nbsp;<a href=\"".$_SERVER["PHP_SELF"]."\" target=\"_self\" title=\"Rechte erfassen\">Weiteren User & Rechte erfassen</a></p>\n";    
       
   218         echo "<p>&nbsp;&nbsp;&nbsp;<a href='/fhiiqm/recht_list.php' title='Nutzerliste'>zur Nutzerliste</a></p>";
       
   219     }
       
   220 ?>
       
   221 </body>
       
   222 </html>