| [ Index ] |
|
Code source de Dolibarr 2.0.1 |
1 <?php 2 /* Copyright (C) 2002-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> 3 * Copyright (C) 2002-2003 Jean-Louis Bergamo <jlb@j1b.org> 4 * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> 5 * Copyright (C) 2004 Eric Seigne <eric.seigne@ryxeo.com> 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 20 * 21 * $Id: perms.php,v 1.7 2005/06/27 21:02:35 eldy Exp $ 22 * $Source: /cvsroot/dolibarr/dolibarr/htdocs/user/group/perms.php,v $ 23 */ 24 25 /** 26 \file htdocs/user/group/perms.php 27 \brief Onglet user et permissions de la fiche utilisateur 28 \version $Revision: 1.7 $ 29 */ 30 31 32 require ("./pre.inc.php"); 33 34 $langs->load("users"); 35 36 37 $form = new Form($db); 38 39 $module=isset($_GET["module"])?$_GET["module"]:$_POST["module"]; 40 41 42 /** 43 * Actions 44 */ 45 if ($_GET["action"] == 'addrights' && $user->admin) 46 { 47 $editgroup = new Usergroup($db,$_GET["id"]); 48 $editgroup->addrights($_GET["rights"],$module); 49 } 50 51 if ($_GET["action"] == 'delrights' && $user->admin) 52 { 53 $editgroup = new Usergroup($db,$_GET["id"]); 54 $editgroup->delrights($_GET["rights"],$module); 55 } 56 57 58 llxHeader('',$langs->trans("Permissions")); 59 60 61 /* ************************************************************************** */ 62 /* */ 63 /* Visu et edition */ 64 /* */ 65 /* ************************************************************************** */ 66 67 if ($_GET["id"]) 68 { 69 $fgroup = new Usergroup($db, $_GET["id"]); 70 $fgroup->fetch($_GET["id"]); 71 $fgroup->getrights(); 72 73 /* 74 * Affichage onglets 75 */ 76 77 $h = 0; 78 79 $head[$h][0] = DOL_URL_ROOT.'/user/group/fiche.php?id='.$fgroup->id; 80 $head[$h][1] = $langs->trans("GroupCard"); 81 $h++; 82 83 $head[$h][0] = DOL_URL_ROOT.'/user/group/perms.php?id='.$fgroup->id; 84 $head[$h][1] = $langs->trans("GroupRights"); 85 $hselected=$h; 86 $h++; 87 88 89 dolibarr_fiche_head($head, $hselected, $langs->trans("Group").": ".$fgroup->nom); 90 91 $db->begin(); 92 93 // Charge les modules soumis a permissions 94 $dir = DOL_DOCUMENT_ROOT . "/includes/modules/"; 95 $handle=opendir($dir); 96 $modules = array(); 97 while (($file = readdir($handle))!==false) 98 { 99 if (is_readable($dir.$file) && substr($file, 0, 3) == 'mod' && substr($file, strlen($file) - 10) == '.class.php') 100 { 101 $modName = substr($file, 0, strlen($file) - 10); 102 103 if ($modName) 104 { 105 include_once("../../includes/modules/$file"); 106 $objMod = new $modName($db); 107 if ($objMod->rights_class) { 108 109 $ret=$objMod->insert_permissions(); 110 111 $modules[$objMod->rights_class]=$objMod; 112 //print "modules[".$objMod->rights_class."]=$objMod;"; 113 } 114 } 115 } 116 } 117 118 $db->commit(); 119 120 // Lecture des droits groupes 121 $permsgroup = array(); 122 123 $sql = "SELECT r.id, r.libelle, r.module "; 124 $sql .= " FROM ".MAIN_DB_PREFIX."rights_def as r"; 125 $sql .= ", ".MAIN_DB_PREFIX."usergroup_rights as ugr"; 126 $sql .= " WHERE ugr.fk_id = r.id AND ugr.fk_usergroup = ".$fgroup->id; 127 128 $result=$db->query($sql); 129 130 if ($result) 131 { 132 $num = $db->num_rows($result); 133 $i = 0; 134 while ($i < $num) 135 { 136 $obj = $db->fetch_object($result); 137 array_push($permsgroup,$obj->id); 138 $i++; 139 } 140 $db->free($result); 141 } 142 else 143 { 144 dolibarr_print_error($db); 145 } 146 147 148 /* 149 * Ecran ajout/suppression permission 150 */ 151 152 print '<table width="100%" class="noborder">'; 153 print '<tr class="liste_titre">'; 154 print '<td>'.$langs->trans("Module").'</td>'; 155 if ($user->admin) print '<td width="24"> </td>'; 156 print '<td align="center" width="24"> </td>'; 157 print '<td>'.$langs->trans("Permissions").'</td>'; 158 print '</tr>'; 159 160 $sql ="SELECT r.id, r.libelle, r.module"; 161 $sql.=" FROM ".MAIN_DB_PREFIX."rights_def as r"; 162 $sql.=" WHERE r.libelle NOT LIKE 'tou%'"; // On ignore droits "tous" 163 $sql.=" ORDER BY r.module, r.id"; 164 165 $result=$db->query($sql); 166 if ($result) 167 { 168 $num = $db->num_rows($result); 169 $i = 0; 170 $var = True; 171 while ($i < $num) 172 { 173 $obj = $db->fetch_object($result); 174 175 // Si la ligne correspond a un module qui n'existe plus (absent de includes/module), on l'ignore 176 if (! $modules[$obj->module]) 177 { 178 $i++; 179 continue; 180 } 181 182 if ($oldmod <> $obj->module) 183 { 184 $oldmod = $obj->module; 185 $var = !$var; 186 187 // Rupture détectée, on récupère objMod 188 $objMod = $modules[$obj->module]; 189 $picto=($objMod->picto?$objMod->picto:'generic'); 190 191 print '<tr '. $bc[$var].'>'; 192 print '<td>'.img_object('',$picto).' '.$objMod->getName(); 193 print '<a name="'.$objMod->getName().'"> </a></td>'; 194 print '<td align="center" nowrap>'; 195 print '<a title='.$langs->trans("All").' alt='.$langs->trans("All").' href="perms.php?id='.$fgroup->id.'&action=addrights&module='.$obj->module.'">'.$langs->trans("All")."</a>"; 196 print '/'; 197 print '<a title='.$langs->trans("None").' alt='.$langs->trans("None").' href="perms.php?id='.$fgroup->id.'&action=delrights&module='.$obj->module.'">'.$langs->trans("None")."</a>"; 198 print '</td>'; 199 print '<td colspan="2"> </td>'; 200 print '</tr>'; 201 } 202 203 print '<tr '. $bc[$var].'>'; 204 205 print '<td>'.img_object('',$picto).' '.$objMod->getName(); 206 print '</td>'; 207 208 if (in_array($obj->id, $permsgroup)) 209 { 210 // Own permission by group 211 if ($user->admin) 212 { 213 print '<td align="center"><a href="perms.php?id='.$fgroup->id.'&action=delrights&rights='.$obj->id.'">'.img_edit_remove($langs->trans("Remove")).'</a></td>'; 214 } 215 print '<td align="center">'; 216 print img_tick(); 217 print '</td>'; 218 } 219 else 220 { 221 // Do not own permission 222 if ($user->admin) 223 { 224 print '<td align="center"><a href="perms.php?id='.$fgroup->id.'&action=addrights&rights='.$obj->id.'">'.img_edit_add($langs->trans("Add")).'</a></td>'; 225 } 226 print '<td> </td>'; 227 } 228 229 $perm_libelle=(($langs->trans("Permission".$obj->id)!=("Permission".$obj->id))?$langs->trans("Permission".$obj->id):$obj->libelle); 230 print '<td>'.$perm_libelle. '</td>'; 231 232 print '</tr>'; 233 234 $i++; 235 } 236 } 237 print '</table>'; 238 } 239 240 $db->close(); 241 242 llxFooter("<em>Dernière modification $Date: 2005/06/27 21:02:35 $ révision $Revision: 1.7 $</em>"); 243 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Mon Nov 26 12:29:37 2007 | par Balluche grâce à PHPXref 0.7 |
|