Source for file cperms.modulo.php

Documentation is available at cperms.modulo.php

  1. <?php
  2.     /**
  3.      * cperms.classe.php
  4.      * 
  5.      * Modulo para edição de permissões dos demais módulos
  6.      *
  7.      * @copyright 2008 Soomp
  8.      * @author Marcio Merlone <mmerlone@gmail.com>
  9.      * @version 1.0
  10.      * @since 04/05/2007
  11.      * @package Soomp
  12.      */
  13.     /* $Id: cperms.modulo.php,v 1.1 2007/05/24 20:23:44 mmerlone Exp $ */
  14.  
  15.     require_once(CFG_LOCAL_FRAMEWORK.'control.classe.php');
  16.     /**
  17.      * Modulo para edição de permissões dos demais módulos
  18.      * <code>
  19.      * CREATE TABLE `TB_PERMS` (
  20.      * `NO_MODULO` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
  21.      * `NO_ACAO` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
  22.      * `FK_GRUPO` INT( 11 ) NOT NULL ,
  23.      * `BITS_PERM` INT( 11 ) NOT NULL DEFAULT '0',
  24.      * PRIMARY KEY ( `NO_MODULO` , `NO_ACAO` , `FK_GRUPO` )
  25.      * ) ENGINE = innodb CHARACTER SET utf8 COLLATE utf8_general_ci;
  26.      * </code>
  27.      */
  28.     class cperms extends control{
  29.  
  30.         /**
  31.          * Construtor
  32.          */
  33.         public function __construct(){
  34.             require_once(CFG_LOCAL_FRAMEWORK.'perms.classe.php');
  35.         }
  36.  
  37.         /**
  38.          * Lista os módulos
  39.          */
  40.         public function lista(requisicao &$req){
  41.             if($this->_smarty()){
  42.                 $req->outputHead();
  43.  
  44.                 $p new perms();
  45.                 $idListagem    $this->getIntIdListagem();
  46.                 $intPag        $this->getIntPag();
  47.                 $lista        $p->initPage($intPag$idListagem);
  48.                 $this->setPagePrefs($lista);
  49.                 $lista->legenda 'Permissões';
  50.                 $lista $p->Page($listaarray_keys($req->arrModulos));
  51.  
  52.                 $this->smarty->assign('lista'$lista);
  53.                 $this->smarty->display('perms.lista.tpl');
  54.                 $req->outputFoot();
  55.             }
  56.         }
  57.  
  58.         /**
  59.          * Lista as permissões de um determinado módulo solicitado em $_GET['t']
  60.          */
  61.         public function listap(&$req){
  62.  
  63.             if($this->_smarty()){
  64.  
  65.                 $req->outputHead();
  66.  
  67.                 /**
  68.                  * por exemplo: $_GET['t'] = 'usuario';
  69.                  */
  70.                 if(isset($req->arrModulos[$_GET['t']])){
  71.  
  72.                     $t $_GET['t'];
  73.  
  74.                     global $CFG_MODULOS;
  75.                     $objModule new modulo($CFG_MODULOS);
  76.                     $objModule->setModule($t);
  77.                     $objModule->loadConfig();
  78.  
  79.                     if(!empty($objModule->objConfig->actions)){
  80.  
  81.                         $g  new grupo();
  82.                         $gs $g->Find(CFG_GRUPO_DB_PK.' != "0"')// Grupo dos administradores sempre tem tudo.
  83.  
  84.                         foreach($gs as $key => &$objGrupo){
  85.  
  86.                             $p            new perms();
  87.                             $bitsPerm    $p->Find('NO_MODULO="'.$t.'" AND FK_GRUPO="'.$objGrupo->{CFG_GRUPO_DB_PK}.'"');
  88.                             $p->setBitsGroup($objGrupo$bitsPerm);
  89.                             $objGrupo->PK_PERM empty($bitsPermnull $bitsPerm[0]->PK_PERM;
  90.                             $objGrupo->actions array();
  91.  
  92.                             foreach($objModule->objConfig->actions as $action => $arrAction){
  93.                                 $objGrupo->actions[$action]        $arrAction;
  94.                                 $objGrupo->actions[$action][2]    $p->checkUser($arrAction[0]);
  95.                             }
  96.                         }
  97.                     }
  98.  
  99.                     $this->smarty->assign('gs'$gs);
  100.                     $this->smarty->assign('t'$t);
  101.                     $this->smarty->display('perms.listap.tpl');
  102.  
  103.                 }else{
  104.                     $this->msg(0'Módulo '.$_GET['t'].' desconhecido.''erro');
  105.                 }
  106.                 $req->outputFoot();
  107.             }
  108.         }
  109.         
  110.         /**
  111.          * Grava as permissões
  112.          */
  113.         public function save(&$req){
  114.             if(!empty($_POST&& isset($_POST['NO_MODULO']&& isset($req->arrModulos[$_POST['NO_MODULO']])){
  115.  
  116.                 $p new perms();
  117.  
  118.                 /**
  119.                  * Há alguma permissão a ser salva.
  120.                  */
  121.                 if(isset($_POST['BITS_PERM']&& !empty($_POST['BITS_PERM'])){
  122.  
  123.                     $p->FK_GRUPO    $_POST['FK_GRUPO'];
  124.                     $p->PK_PERM        empty($_POST['PK_PERM']null $_POST['PK_PERM'];
  125.                     $p->NO_MODULO    $_POST['NO_MODULO'];
  126.                     $p->BITS_PERM    $p->getBitsUser($_POST['BITS_PERM']);
  127.  
  128.                     if($ok $p->Save()){
  129.                         $g new grupo();
  130.                         $g->Load($_POST['FK_GRUPO']);
  131.                         $this->msg(0'Permissões do grupo &quot;'.$g->{CFG_GRUPO_DB_NOME}.'&quot; para o módulo &quot;'.$_POST['NO_MODULO'].'&quot; gravadas com sucesso.''sucesso');
  132.  
  133.                     }else{
  134.                         $this->msg(0'ERRO gravando permissões:'.$ok'erro');
  135.                     }
  136.  
  137.                 /**
  138.                  * Não há permissão a ser salva, remove se já existir
  139.                  */
  140.                 }elseif(isset($_POST['PK_PERM']&& !empty($_POST['PK_PERM'])){
  141.  
  142.                     $p->Load($_POST['PK_PERM']);
  143.  
  144.                     if($ok $p->Delete()){
  145.                         $g new grupo();
  146.                         $g->Load($_POST['FK_GRUPO']);
  147.                         $this->msg(0'Permissões do grupo &quot;'.$g->{CFG_GRUPO_DB_NOME}.'&quot; para o módulo &quot;'.$_POST['NO_MODULO'].'&quot; removidas com sucesso.''sucesso');
  148.  
  149.                     }else{
  150.                         $this->msg(0'ERRO removendo permissões:'.$ok'erro');
  151.                     }
  152.  
  153.                 /**
  154.                  * Não há permissão a ser salva nem existe ainda no db.
  155.                  */
  156.                 }else{
  157.                     $this->msg(0'Nenhuma alteração nas permissões.''sucesso');
  158.                 }
  159.             }
  160.             return 'index.php?m=perms&a=listap&t='.$_POST['NO_MODULO'];
  161.         }
  162.     }
  163.  
  164. ?>

Documentation generated on Sun, 09 Mar 2008 23:51:18 -0300 by phpDocumentor 1.4.0

SourceForge.net Logo Support This Project