public function __construct()
 {
     parent::__construct();
     // Libraries and helpers and models.
     $this->load->helper('url');
     $this->load->helper('permission_manager');
     $this->load->library('validation');
     $this->load->model('sharedDB_model');
     $this->data = permission_manager();
 }
Ejemplo n.º 2
0
    /**
    * Return project permission for specific user if he is on project. In case of any error $default is returned
    *
    * @access public
    * @param Project $project
    * @param string $permission Permission name
    * @param boolean $default Default value
    * @return boolean
    */
    function getProjectPermission(Project $project, $permission, $default = false) {
      trace(__FILE__,"getProjectPermission($permission, $default)");
      if (is_null($project)) return false;
      static $valid_permissions;
      if (!isset($valid_permissions)) {
        trace(__FILE__,"getProjectPermission($permission, $default):getPermissionsText()");
        $valid_permissions = array_keys(permission_manager()->getPermissionsText());
      } // if
      
      if (!in_array($permission, $valid_permissions)) {
        return $default;
      } // if
      
      trace(__FILE__,"getProjectPermission($permission, $default):findById project={$project->getId()}");
      $project_user = ProjectUsers::findById(array(
        'project_id' => $project->getId(),
        'user_id' => $this->getId()
      )); // findById
      if (!($project_user instanceof ProjectUser)) {
        return $default;
      } // if

      trace(__FILE__,"getProjectPermission($permission, $default):getPermissions()");
      $value = in_array($permission,$project_user->getPermissions()) ? true : false;
      return $value;
    } // getProjectPermission
Ejemplo n.º 3
0
 /**
  * Register user on the site
  *
  * @return void
  */
 function register()
 {
     $this->load->helper('permission_manager');
     $a = permission_manager();
     if ($this->tank_auth->is_logged_in()) {
         // logged in
         //redirect('');
     } elseif ($this->tank_auth->is_logged_in(FALSE)) {
         // logged in, not activated
         //redirect('/auth/send_again/');
     } elseif (!$this->config->item('allow_registration', 'tank_auth')) {
         // registration is off
         $this->_show_message($this->lang->line('auth_message_registration_disabled'));
     } else {
         $use_username = $this->config->item('use_username', 'tank_auth');
         if ($use_username) {
             $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean|min_length[' . $this->config->item('username_min_length', 'tank_auth') . ']|max_length[' . $this->config->item('username_max_length', 'tank_auth') . ']|alpha_dash');
         }
         $this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean|valid_email');
         $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|min_length[' . $this->config->item('password_min_length', 'tank_auth') . ']|max_length[' . $this->config->item('password_max_length', 'tank_auth') . ']|alpha_dash');
         $this->form_validation->set_rules('confirm_password', 'Confirm Password', 'trim|required|xss_clean|matches[password]');
         $captcha_registration = $this->config->item('captcha_registration', 'tank_auth');
         $use_recaptcha = $this->config->item('use_recaptcha', 'tank_auth');
         if ($captcha_registration) {
             if ($use_recaptcha) {
                 $this->form_validation->set_rules('recaptcha_response_field', 'Confirmation Code', 'trim|xss_clean|required|callback__check_recaptcha');
             } else {
                 $this->form_validation->set_rules('captcha', 'Confirmation Code', 'trim|xss_clean|required|callback__check_captcha');
             }
         }
         $data['errors'] = array();
         $email_activation = $this->config->item('email_activation', 'tank_auth');
         if ($this->form_validation->run()) {
             // validation ok
             if (!is_null($data = $this->tank_auth->create_user($use_username ? $this->form_validation->set_value('username') : '', $this->form_validation->set_value('email'), $this->form_validation->set_value('password'), $email_activation))) {
                 // success
                 $data['site_name'] = $this->config->item('website_name', 'tank_auth');
                 if ($email_activation) {
                     // send "activate" email
                     $data['activation_period'] = $this->config->item('email_activation_expire', 'tank_auth') / 3600;
                     $this->_send_email('activate', $data['email'], $data);
                     unset($data['password']);
                     // Clear password (just for any case)
                     $this->_show_message($this->lang->line('auth_message_registration_completed_1'));
                 } else {
                     if ($this->config->item('email_account_details', 'tank_auth')) {
                         // send "welcome" email
                         $this->_send_email('welcome', $data['email'], $data);
                     }
                     unset($data['password']);
                     // Clear password (just for any case)
                     $this->_show_message($this->lang->line('auth_message_registration_completed_2') . ' ' . anchor('/auth/login/', 'Login'));
                 }
             } else {
                 $errors = $this->tank_auth->get_error_message();
                 foreach ($errors as $k => $v) {
                     $data['errors'][$k] = $this->lang->line($v);
                 }
             }
         }
         if ($captcha_registration) {
             if ($use_recaptcha) {
                 $data['recaptcha_html'] = $this->_create_recaptcha();
             } else {
                 $data['captcha_html'] = $this->_create_captcha();
             }
         }
         $data['use_username'] = $use_username;
         $data['captcha_registration'] = $captcha_registration;
         $data['use_recaptcha'] = $use_recaptcha;
         $this->load->view('auth/register_form', $data);
     }
 }
Ejemplo n.º 4
0
function remove_permission_source($source)
{
    permission_manager()->removeSource($source);
}