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(); }
/** * 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
/** * 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); } }
function remove_permission_source($source) { permission_manager()->removeSource($source); }