/** * 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('*'))); }
/** * * 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; }
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; }