public function removeDo()
 {
     /*
      * Loading libraries and helpers
      */
     $this->load->library(array('rb', 'form_validation', 'session'));
     /*
      * Getting post variables
      */
     $id = $this->input->post('id');
     /*
      * Validation rules
      */
     $this->form_validation->set_rules('id', 'ID', 'required');
     /*
      * Normally, user wiil never see what makes this true, just for security issues
      */
     if (!$this->form_validation->run()) {
         echo "Você não preencheu os campos corretamente.<br>";
         echo validation_errors();
         exit;
     }
     /*
      * User has auth to do this?
      */
     if (!parent::_hasAuth('remove_ic', $this->session->userdata('user_ic'))) {
         echo "Você não tem permissão para realizar este procedimento.";
         exit;
     }
     /*
      * Retrieve IC
      */
     $g = R::findOne('ic', 'id=? AND active!="no" ', array($id));
     /*
      * Verifying if ic exists
      */
     if ($g == NULL) {
         $this->session->set_flashdata('error', 'O Centro de Informação solicitado para remoção não existe.');
         redirect('dashboard/ic');
     }
     /*
      * Can user access this IC?
      */
     $tmp = R::findOne('ic', 'id=?', array($this->session->userdata('user_ic')));
     if ($tmp->master != 'yes') {
         if ($this->session->userdata('user_ic') != $id) {
             $this->session->set_flashdata('error', 'Você não tem autorização realizar esta ação neste Centro de Informação');
             redirect('dashboard/ic');
             exit;
         }
     }
     /*
      * If it's a master IC, can't be removed
      */
     if ($g->master == "yes") {
         $this->session->set_flashdata('error', 'Não é possível remover o centro de informação principal.');
         redirect('dashboard/ic');
         exit;
     }
     $g->active = 'no';
     R::store($g);
     /*
      * Generating and creating log 
      */
     $g->user;
     $aprex = json_encode($g->export());
     parent::_createLog('remove_ic', '', $aprex);
     /*
      * Success message
      */
     $this->session->set_flashdata('success', 'Centro de Informação removido com sucesso.');
     redirect('dashboard/ic');
 }
 private function _changeRequestStatus($type, $request, $ic, $user, $extraFields = array())
 {
     /* 
      * Loading Libraries and Helpers
      */
     $this->load->library(array('rb'));
     $this->load->helper(array('date'));
     /* 
      * Creating Status
      */
     $status = R::dispense('status');
     $status->current = 'Y';
     $status->createdAt = mdate('%Y-%m-%d %H:%i:%s');
     $status->request = $request;
     $status->ic = $ic;
     $status->user = $user;
     // Adding extra fields for bean
     foreach ($extraFields as $key => $ef) {
         $status[$key] = $ef;
     }
     if ($type == 'request_created') {
         $status->type = 'request_created';
     } elseif ($type == 'request_moved' || $type == 'request_replied' || $type == 'request_extended') {
         /*
          * Removing 'current' from previous statuses
          */
         $statuses = R::find('status', ' request_id = ? AND current="Y" ', array($request->id));
         foreach ($statuses as $s) {
             $s->current = 'N';
             R::store($s);
         }
         if ($type == 'request_moved') {
             $status->type = 'request_moved';
         } elseif ($type == 'request_replied') {
             $status->type = 'request_replied';
         } elseif ($type == 'request_extended') {
             $status->type = 'request_extended';
         }
     } else {
         return false;
     }
     R::store($status);
     /*
      * Generating and creating log 
      */
     $status->ic;
     $status->request;
     $status->user;
     $aprex = json_encode($status->export());
     parent::_createLog('new_status_request', '', $aprex);
     /*
      * Send email 
      */
     if ($status->type != 'request_created') {
         $msg = '<h1>A sua solicitação ' . $status->request->protocol . ' teve o status alterado</h1>';
         $msg .= '<p> <b>Descrição: </b> ' . status_text($status->type) . ' </p>';
         if ($status->type == 'request_moved') {
             $msg .= '<p> A solicitação foi redirecionada para ' . $status->ic->name . ' por meio da seguinte justificativa: ' . $status->response . ' </p>';
             /*
              * Email for Responsible User of Information Center
              */
             /*parent::_sendEmail(
                   $status->request->userEmail,
                   'Solicitação - Novo Status',
                   $msg
               );*/
         } elseif ($status->type == 'request_replied') {
             $msg .= '<p> A sua solicitação foi respondida.</p>';
             $msg .= '<p> <b>Resposta:</b> ' . $status->response . '</p>';
             if ($status->attach1 != null || $status->attach2 != null || $status->attach3 != null) {
                 $msg .= '<p>Também foram adicionados anexos, complementando a resposta. </p>';
             }
         } elseif ($status->type == 'request_extended') {
             $msg .= '<p>O prazo da solicitação foi extendido em ' . $this->config->item('deadline_extend') . ' dias pela seguinte justificativa: ' . $status->response . '</p>';
         }
         parent::_sendEmail($status->request->userEmail, 'Solicitação - Novo Status', $msg);
     }
     return true;
 }
 public function removeDo()
 {
     /*
      * Loading libraries and helpers
      */
     $this->load->library(array('rb', 'form_validation', 'session'));
     /*
      * User is logged ?
      */
     if (!parent::_isLogged()) {
         redirect('dashboard');
         exit;
     }
     /*
      * Getting post data
      */
     $id = $this->input->post('id');
     /*
      * Setting form validation rules
      */
     $this->form_validation->set_rules('id', 'ID', 'required');
     /*
      * Normally, user wiil never see what makes this true, just for security issues
      */
     if (!$this->form_validation->run()) {
         echo "Você não preencheu os campos corretamente.<br>";
         echo validation_errors();
         exit;
     }
     /*
      * User has auth to do this?
      */
     if (!parent::_hasAuth('remove_user', $this->session->userdata('user_ic'))) {
         $this->session->set_flashdata('error', 'Você não tem permissão para realizar este procedimento.');
         redirect('dashboard/user');
         exit;
     }
     /*
      * Loading User
      */
     $user = R::findOne('user', 'id=? AND active!="no" ', array($id));
     /*
      * Verifying if User exists
      */
     if ($user == NULL) {
         $this->session->set_flashdata('error', 'O usuário solicitado para exclusão não existe.');
         redirect('dashboard/user');
         exit;
     }
     /*
      * Removing User
      */
     $user->active = 'no';
     R::store($user);
     /*
      * Generating and creating log 
      */
     $user->sharedAuthList;
     $aprex = json_encode($user->export());
     parent::_createLog('remove_user', '', $aprex);
     /*
      * Verifying if User exists
      */
     $this->session->set_flashdata('success', 'O usuário foi removido com sucesso.');
     redirect('dashboard/user');
 }
 public function removeDo()
 {
     /*
      * Loading libraries and helpers
      */
     $this->load->library(array('rb', 'form_validation', 'session'));
     /*
      * Getting post variables
      */
     $id = $this->input->post('id');
     /*
      * Validation rules
      */
     $this->form_validation->set_rules('id', 'ID', 'required');
     /*
      * Normally, user wiil never see what makes this true, just for security issues
      */
     if (!$this->form_validation->run()) {
         echo "Você não preencheu os campos corretamente.<br>";
         echo validation_errors();
         exit;
     }
     /*
      * User has auth to do this?
      */
     if (!parent::_hasAuth('remove_group', $this->session->userdata('user_ic'))) {
         echo "Você não tem permissão para realizar este procedimento.";
         exit;
     }
     /*
      * Retrieving group
      */
     $g = R::findOne('group', 'id=? AND active!="no" ', array($id));
     /*
      * Verifying if group exists
      */
     if ($g == NULL) {
         $this->session->set_flashdata('error', 'O grupo solicitado para remoção não existe.');
         redirect('dashboard/group');
     }
     /*
      * Removing group
      */
     $g->active = 'no';
     R::store($g);
     /*
      * Generating and creating log 
      */
     $attch = R::exportAll($g->sharedAuthList);
     $aprex = json_encode($g->export());
     parent::_createLog('remove_group', '', $aprex);
     /*
      * Success message
      */
     $this->session->set_flashdata('success', 'Grupo removido com sucesso.');
     redirect('dashboard/group');
 }