/**
  * Specifies the access control rules.
  * This method is used by the 'accessControl' filter.
  * @return array access control rules
  */
 public function accessRules()
 {
     return array(array('allow', 'actions' => array('update', 'delete'), 'expression' => function () {
         //	Se for admin já retorna permissão de acesso
         if (Sipesq::isAdmin() || Sipesq::isSupport()) {
             return true;
         }
         $projeto = ProjetoOrcamento::model()->findByPk($_GET['id'])->cod_projeto;
         $pessoa = Yii::app()->user->getId();
         //Verifica se atua no projeto
         if (ProjetoPessoaAtuante::model()->count('cod_projeto = :proj AND cod_pessoa = :id', array('id' => $pessoa, 'proj' => $projeto)) > 0) {
             return true;
         }
         //verifica se é um dos coordenadores
         if (Projeto::model()->count('cod_projeto = :proj AND (cod_professor = :id OR cod_grad = :id OR cod_pos_grad = :id)', array('id' => $pessoa, 'proj' => $projeto))) {
             return true;
         }
         //verifica se alguem delegou uma permissão a este usuário
         if (PermissaoProjeto::model()->count('cod_projeto = :projeto AND cod_pessoa = :id', array('id' => $pessoa, 'projeto' => $projeto))) {
             return true;
         }
         //o usuário não é permitido
         return false;
     }), array('allow', 'actions' => array('create'), 'expression' => function () {
         //	Se for admin já retorna permissão de acesso
         if (Sipesq::isAdmin() || Sipesq::isSupport()) {
             return true;
         }
         $projeto = $_GET['id'];
         $pessoa = Yii::app()->user->getId();
         //Verifica se atua no projeto
         if (ProjetoPessoaAtuante::model()->count('cod_projeto = :proj AND cod_pessoa = :id', array('id' => $pessoa, 'proj' => $projeto)) > 0) {
             return true;
         }
         //verifica se é um dos coordenadores
         if (Projeto::model()->count('cod_projeto = :proj AND (cod_professor = :id OR cod_grad = :id OR cod_pos_grad = :id)', array('id' => $pessoa, 'proj' => $projeto))) {
             return true;
         }
         //verifica se alguem delegou uma permissão a este usuário
         if (PermissaoProjeto::model()->count('cod_projeto = :projeto AND cod_pessoa = :id', array('id' => $pessoa, 'projeto' => $projeto))) {
             return true;
         }
         //o usuário não é permitido
         return false;
     }), array('allow', 'actions' => array('create'), 'expression' => function () {
         return Sipesq::isSupport() || Sipesq::getPermition('projeto.financeiro') >= 1;
     }), array('allow', 'actions' => array('update'), 'expression' => function () {
         return Sipesq::isSupport() || Sipesq::getPermition('projeto.financeiro') >= 2;
     }), array('allow', 'actions' => array('delete'), 'expression' => function () {
         return Sipesq::isAdmin() || Sipesq::getPermition('projeto.financeiro') >= 100;
     }), array('deny', 'users' => array('*')));
 }
Esempio n. 2
0
 /**
  *
  * Verifica se o usuário é membro do projeto.
  * @param integer $id
  */
 public function isMember($id = null)
 {
     if ($id == null) {
         $id = Yii::app()->user->getId();
     }
     //      Se for admin já retorna permissão de acesso
     if (Sipesq::isSupport($id)) {
         return true;
     }
     //Verifica se atua no projeto
     if (ProjetoPessoaAtuante::model()->count('cod_projeto = :proj AND cod_pessoa = :id', array('id' => $id, 'proj' => $this->cod_projeto)) > 0) {
         return true;
     }
     //verifica se é um dos coordenadores
     if (Projeto::model()->count('cod_projeto = :proj AND (cod_professor = :id OR cod_grad = :id OR cod_pos_grad = :id)', array('id' => $id, 'proj' => $this->cod_projeto))) {
         return true;
     }
     //verifica se alguem delegou uma permissão a este usuário
     if (PermissaoProjeto::model()->count('cod_projeto = :projeto AND cod_pessoa = :id', array('id' => $id, 'projeto' => $this->cod_projeto))) {
         return true;
     }
     //o usuário não é permitido
     return false;
 }
Esempio n. 3
0
 private function salvaPessoas($cod_projeto, $pessoas)
 {
     ProjetoPessoaAtuante::model()->deleteAll('cod_projeto = ' . $cod_projeto);
     foreach ($pessoas as $p) {
         $a = new ProjetoPessoaAtuante();
         $a->cod_projeto = $cod_projeto;
         $a->cod_pessoa = $p;
         $a->save();
         unset($a);
     }
 }
 public function actionSetMembro()
 {
     if (!Yii::app()->request->isPostRequest) {
         throw new CHttpException(404);
     }
     $pessoa = $_POST['membro']['cod_pessoa'];
     $projeto = $_POST['membro']['cod_projeto'];
     $ativo = $_POST['membro']['ativo'];
     $model = ProjetoPessoaAtuante::model()->findByPk(array('cod_pessoa' => $pessoa, 'cod_projeto' => $projeto));
     if ($model == null) {
         $model = new ProjetoPessoaAtuante();
     }
     //Set Attributes
     $model->cod_pessoa = $pessoa;
     $model->cod_projeto = $projeto;
     $model->ativo = $ativo;
     $model->save();
     echo var_dump($_POST['membro']);
     echo $model->ativo;
     //echo $model->attributes;
 }