Source for file cusuario.modulo.php

Documentation is available at cusuario.modulo.php

  1. <?php
  2.     /**
  3.      * usuario.modulo.php
  4.      * 
  5.      * Mantém os métodos de manipulação de usuários.
  6.      *
  7.      * @copyright 2008 Soomp
  8.      * @author Marcio Merlone <mmerlone@gmail.com>
  9.      * @version 1.0
  10.      * @since 20/12/2006
  11.      * @package Soomp
  12.      */
  13.     /* $Id: cusuario.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.      * Classe controle de usuários e funções relacionadas
  18.      */
  19.     class cusuario extends control{
  20.  
  21.         /**
  22.          * Construtor
  23.          */
  24.         public function __construct(){
  25.             require_once(CFG_LOCAL_FRAMEWORK.'usuario.classe.php');
  26.         }
  27.  
  28.         /**
  29.          * Exibe a listagem de usuários
  30.          * @param object $req objeto de requisição
  31.          * @return string A ação a ser redirecionado ou null
  32.          */
  33.         public function lista(requisicao &$req){
  34.             if($this->_smarty()){
  35.  
  36.                 $u new usuario();
  37.  
  38.                 $idListagem    $this->getIntIdListagem();
  39.                 $intPag        $this->getIntPag();
  40.                 $arrAcoes    array('delmulti' => array('id' => 31'value' => 'Remove selecionados'));
  41.  
  42.                 $lista $u->initPage($intPag$idListagemtrue);
  43.                 $this->setPagePrefs($lista);
  44.                 $lista->setComboAcoes($arrAcoes);
  45.                 $lista->legenda 'Usuários';
  46.                 $lista $u->Page($lista);
  47.  
  48.                 $req->outputHead();
  49.                 $this->smarty->assign('lista'$lista);
  50.                 $this->smarty->assign('pk'CFG_USUARIO_DB_PK);
  51.                 $this->smarty->js('jsVarsLista.tpl');
  52.                 $this->smarty->display('usuario.lista.tpl');
  53.                 $req->outputFoot();
  54.                 return;
  55.  
  56.             }elseif(defined('AJAX')){
  57.                 $u new usuario();
  58.                 return $u->Find('');
  59.             }
  60.         }
  61.         
  62.         /**
  63.          * Exibe o formulário para adicionar um usuário
  64.          * @param object $req objeto de requisição
  65.          * @param mixed $objU objeto usuário
  66.          * @return string A ação a ser redirecionado ou null
  67.          */
  68.         function add(requisicao &$requsuario $objU null){
  69.             if(defined('INDEX')){
  70.  
  71.                 require_once(CFG_LOCAL_FRAMEWORK.'grupo.classe.php');
  72.                 $g new grupo();
  73.                 $gs $g->Find('');
  74.                 unset($g);
  75.  
  76.                 if(is_null($objU)){
  77.                     $objU new usuario();
  78.                 }
  79.                 foreach($gs as &$g){
  80.                     $g->checked 0;
  81.                     foreach($objU->grupos as $gU){
  82.                         if($g->{CFG_GRUPO_DB_PK== $gU->{CFG_GRUPO_DB_PK}){
  83.                             $g->checked 1;
  84.                             // break;
  85.                         }
  86.                     }
  87.                 }
  88.                 $fields $objU->getFields();
  89.                 if($this->_smarty()){
  90.                     $req->outputHead();
  91.                     $this->smarty->assign('gs'$gs);
  92.                     $this->smarty->assign('u'$objU);
  93.                     $this->smarty->assign('fields'$fields);
  94.                     $this->smarty->display('usuario.add.tpl');
  95.                     $req->outputFoot();
  96.                 }
  97.             }elseif(defined('AJAX')){
  98.                 return debug('','cusuario::add',3);
  99.             }
  100.             return;
  101.         }
  102.     
  103.         /**
  104.          * Exibe o formulário com os dados de um usuário existente.
  105.          * @param object $req objeto de requisição
  106.          * @return string A ação a ser redirecionado ou null
  107.          */
  108.         function edit(requisicao &$req){
  109.             $u new usuario();
  110.             if($u->Load($_GET[CFG_USUARIO_DB_PK])){
  111.                 $this->add($req$u);
  112.             }else{
  113.                 $this->msg(0'Dados inválidos, informe o usuário a ser editado.''erro');
  114.                 debug(null'cusuario::edit'3);
  115.             }
  116.         }
  117.  
  118.         /**
  119.          * Grava os dados de um usuário novo ou existente
  120.          * @param object $req objeto de requisição
  121.          * @return string A ação a ser redirecionado ou null
  122.          */
  123.         function save(requisicao &$req){
  124.             if(!empty($_POST)){
  125.  
  126.                 // Para usuário existente verifica se há troca de senha
  127.                 if(isset($_POST[CFG_USUARIO_DB_SENHA]&& !empty($_POST[CFG_USUARIO_DB_SENHA]&& empty($_POST[CFG_USUARIO_DB_SENHA.'_CONFIRMA'])){
  128.                     $_POST[CFG_USUARIO_DB_SENHAnull;
  129.                     $_POST[CFG_USUARIO_DB_SENHA.'_CONFIRMA'null;
  130.                 }
  131.     
  132.                 require_once(CFG_LOCAL_FRAMEWORK.'validacao.classe.php');
  133.                 $v new validacao();
  134.                 $v->strObj 'usuario';
  135.                 $v->username($_POST[CFG_USUARIO_DB_USERNAME]);
  136.                 $v->senhas($_POST[CFG_USUARIO_DB_SENHA]$_POST[CFG_USUARIO_DB_SENHA.'_CONFIRMA'])
  137.                 $v->email($_POST[CFG_USUARIO_DB_EMAIL]);
  138.                 $v->duplicado(array(CFG_USUARIO_DB_PK => $_POST[CFG_USUARIO_DB_PK]CFG_USUARIO_DB_USERNAME => $_POST[CFG_USUARIO_DB_USERNAME]));
  139.  
  140.                 $u new usuario();
  141.                 if(isset($_POST[CFG_USUARIO_DB_PK]&& $_POST[CFG_USUARIO_DB_PK|| $_POST[CFG_USUARIO_DB_PK!= '')
  142.                     $u->Load($_POST[CFG_USUARIO_DB_PK]);
  143.                 $u->{CFG_USUARIO_DB_NOME}        $_POST[CFG_USUARIO_DB_NOME];
  144.                 $u->{CFG_USUARIO_DB_EMAIL}        $_POST[CFG_USUARIO_DB_EMAIL];
  145.                 $u->{CFG_USUARIO_DB_USERNAME}    $_POST[CFG_USUARIO_DB_USERNAME];
  146.                 $u->{CFG_USUARIO_DB_SENHA}        $_POST[CFG_USUARIO_DB_SENHA];
  147.                 $u->setGrupos($_POST[CFG_USUARIO_GRUPO_DB_FK_GRUPO]);
  148.  
  149.                 if(!$v->valido){
  150.                     /**
  151.                      * Dados inválidos
  152.                      */
  153.                     $erros $v->erros;
  154.                     foreach($erros as $erro){
  155.                         switch($erro[0]){
  156.     
  157.                             case 'username':
  158.                                 $this->msg(0'Username inválido. O username deve ter no mínimo $CFG_USUARIO_MIN_LEN caracteres entre letras e números e iniciar com letra.''erro'array('CFG_USUARIO_MIN_LEN' => CFG_USUARIO_MIN_LEN));
  159.                                 break;
  160.     
  161.                             case 'email':
  162.                                 $this->msg(0'Endereço de e-mail inválido.''erro');
  163.                                 break;
  164.  
  165.                             case 'senhas':
  166.                                 $this->msg(15'As senhas não conferem.''erro');
  167.                                 break;
  168.  
  169.                             case 'duplicado':
  170.                                 $this->msg(0'Já existe um usuário de nome "$nome"!''erro'array('nome' => $_POST[CFG_USUARIO_DB_USERNAME]));
  171.                                 break;
  172.                         }
  173.                     }
  174.                     $this->add($req$u);
  175.                     return;
  176.  
  177.                 }else{
  178.                     unset($v);
  179.                     if($u->Save()){
  180.                         if(empty($_POST[CFG_USUARIO_DB_PK]&& $_POST[CFG_USUARIO_DB_PK!== "0"){
  181.                             $this->msg(0'Usuário "$nome" criado com sucesso.''sucesso'array('nome' => $_POST[CFG_USUARIO_DB_USERNAME]));
  182.  
  183.                         }else{
  184.                             $this->msg(0'Usuário "$nome" alterado com sucesso.''sucesso'array('nome' => $_POST[CFG_USUARIO_DB_USERNAME]));
  185.                             if($_POST[CFG_USUARIO_DB_SENHA!= ''){
  186.                                 $this->msg(0'A senha foi redefinida com sucesso.''sucesso');
  187.                             }
  188.                         }
  189.  
  190.                         $goto (isset($_POST['goto']&& !empty($_POST['goto'])) $_POST['goto''lista';
  191.                         $goto $goto == 'edit' 'm=usuario&a=edit&'.CFG_USUARIO_DB_PK.'='.$u->{CFG_USUARIO_DB_PK$goto;
  192.                         return $goto;
  193.  
  194.                     }else{
  195.                         $this->msg(0'Erro ao criar ou editar o usuário.''erro');
  196.                         $this->add($req$u);
  197.                         debug($u'erro cusuario::save'3);
  198.                         return;
  199.                     }
  200.                 }
  201.             }else{
  202.                 $this->add($req);
  203.             }
  204.             return;
  205.         }
  206.  
  207.         /**
  208.          * Remove um usuário
  209.          * @param object $req objeto de requisição
  210.          * @return string A ação a ser redirecionado ou null
  211.          */
  212.         function del(requisicao &$req){
  213.             if(isset($_GET[CFG_USUARIO_DB_PK]&& is_numeric($_GET[CFG_USUARIO_DB_PK])){
  214.                 $u new usuario();
  215.                 if($foo $u->Load($_GET[CFG_USUARIO_DB_PK])){
  216.                     if($u->{CFG_USUARIO_DB_PK== 0){
  217.                         $this->msg(0'O usuário "'.$u->{CFG_USUARIO_DB_NOME}.'" não pode ser removido.''erro');
  218.                     }else{
  219.                         if($u->delete()){
  220.                             $this->msg(0'Usuário removido com sucesso.''sucesso');
  221.                         }else{
  222.                             $this->msg(0'Erro ao remover usuário''erro');
  223.                         }
  224.                     }
  225.                 }else{
  226.                     $this->msg(0'Usuário inexistente.''erro');
  227.                 }
  228.             }else{
  229.                 $this->msg(0'Dados inválidos, informe o usuário a ser removido.''erro');
  230.                 debug(null'cusuario::del'3);
  231.                 
  232.             }
  233.             return 'lista';
  234.         }
  235.     
  236.         /**
  237.          * Remove um conjunto de usuários
  238.          * @param object $req objeto de requisição
  239.          * @return string A ação a ser redirecionado ou null
  240.          */
  241.         function delmulti(requisicao &$req){
  242.             if(isset($_POST['ids']&& is_array($_POST['ids'])){
  243.                 $u new usuario();
  244.                 if($u->Delete($_POST['ids'])){
  245.                     $this->msg(0'Usuários removidos com sucesso.''sucesso');
  246.                 }else{
  247.                     $this->msg(0'Erro ao remover usuários''erro');
  248.                 }
  249.             }else{
  250.                 $this->msg(0'Dados inválidos, informe o(s) usuário(s) a remover.''erro');
  251.                 debug(nullnull3);
  252.                 
  253.             }
  254.             return 'lista';
  255.         }
  256.     }
  257. ?>

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

SourceForge.net Logo Support This Project