/**
  * 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('*')));
 }
Exemplo n.º 2
0
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     //Se não for admin (testado por "user->id") ou se não for o perfil do próprio usuário bloqueia esta ação
     //if(!Yii::app()->user->id || !Yii::app()->user->name == $model->login)
     //throw new CHttpException(400,'Você não está autorizado a fazer esta operação');
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Pessoa'])) {
         $connection = Yii::app()->db;
         $sql = "delete from projeto_pessoa_atuante where cod_pessoa = :cod_pessoa";
         $command = $connection->createCommand($sql);
         $command->bindParam(":cod_pessoa", $id, PDO::PARAM_STR);
         $command->execute();
         $model->attributes = $_POST['Pessoa'];
         if (isset($_POST['Pessoa']['projetos_atuante'])) {
             $model->projetos_atuante = $_POST['Pessoa']['projetos_atuante'];
         }
         if ($model->save()) {
             foreach ($model->projetos_atuante as $p) {
                 $ppa = new ProjetoPessoaAtuante();
                 $ppa->cod_pessoa = $model->cod_pessoa;
                 $ppa->cod_projeto = $p;
                 $ppa->save();
                 unset($ppa);
             }
             $this->redirect(array('view', 'id' => $model->cod_pessoa));
         }
     }
     $this->render('update', array('model' => $model));
 }
Exemplo n.º 3
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;
 }
Exemplo n.º 4
0
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     $endereco_res = EnderecoResidencial::load(json_decode($model->endereco_residencial));
     if (isset($_POST["EnderecoResidencial"])) {
         $model->endereco_residencial = json_encode($_POST["EnderecoResidencial"]);
     }
     if (isset($_POST['Pessoa'])) {
         $model->attributes = $_POST['Pessoa'];
         if (isset($_POST['Pessoa']['projetos_atuante'])) {
             $connection = Yii::app()->db;
             $sql = "delete from projeto_pessoa_atuante where cod_pessoa = :cod_pessoa";
             $command = $connection->createCommand($sql);
             $command->bindParam(":cod_pessoa", $id, PDO::PARAM_STR);
             $command->execute();
             $model->projetos_atuante = $_POST['Pessoa']['projetos_atuante'];
         }
         if ($model->save()) {
             if (isset($_POST['Pessoa']['projetos_atuante'])) {
                 foreach ($model->projetos_atuante as $p) {
                     $ppa = new ProjetoPessoaAtuante();
                     $ppa->cod_pessoa = $model->cod_pessoa;
                     $ppa->cod_projeto = $p;
                     $ppa->save();
                     unset($ppa);
                 }
             }
             $this->redirect(array('view', 'id' => $model->cod_pessoa));
         }
     }
     $this->render('update', array('model' => $model, 'endereco_res' => $endereco_res));
 }
Exemplo n.º 5
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);
     }
 }
Exemplo n.º 6
0
 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;
 }