Update positioning in contact page
[living-lab-site.git] / application / controllers / user.php
index 810069d..169d5d2 100644 (file)
@@ -26,7 +26,7 @@ class User extends CI_Controller {
        
        public function test($user_id = 1)
        {
-//             echo ($this->users_model->get_userdata('calin.burloiu') ? 'd' : 'n');
+//             echo extension_loaded('gd') ? 'gd' : 'nu';
        }
        
        // DEBUG
@@ -45,6 +45,13 @@ class User extends CI_Controller {
                        
                $this->session->sess_destroy();
        }
+       
+       public function ajax_get_captcha()
+       {
+               $this->load->library('captcha');
+               $captcha = $this->captcha->get_captcha();
+               echo $captcha['image'];
+       }
 
        /**
        * Login a user and then redirect it to the last page which must be encoded
@@ -172,6 +179,7 @@ class User extends CI_Controller {
                $this->session->unset_userdata('user_id');
                $this->session->unset_userdata('username');
                $this->session->unset_userdata('auth_src');
+               $this->session->unset_userdata('roles');
                $this->session->unset_userdata('time_zone');
                
                header('Location: '. site_url(urldecode_segments($redirect)));
@@ -215,6 +223,7 @@ class User extends CI_Controller {
                if (! $b_validation)
                {
                        // Edit account data if logged in, otherwise register.
+                       // ** ACCOUNT
                        if ($user_id)
                        {
                                $userdata = $this->users_model->get_userdata(intval($user_id));
@@ -222,11 +231,18 @@ class User extends CI_Controller {
                                        $userdata['autogen_username'] =
                                                substr($userdata['username'], 8);
                                $selected_menu = 'account';
+                               $captcha = FALSE;
                        }
+                       // ** REGISTER
                        else
                        {
                                $userdata = FALSE;
                                $selected_menu = 'register';
+                               
+                               // CAPTCHA
+                               $this->load->library('captcha');
+                               $captcha = $this->captcha->get_captcha();
+                               $captcha = $captcha['image'];
                        }
                        
                        $params = array('title' =>
@@ -246,7 +262,7 @@ class User extends CI_Controller {
                        
                        $main_params['content'] = $this->load->view('user/register_view', 
                                array('userdata'=> $userdata, 'redirect'=> $redirect,
-                                       'error_upload'=> $error_upload),
+                                       'error_upload'=> $error_upload, 'captcha'=> $captcha),
                                TRUE);
                        $main_params['side'] = $this->load->view('side_default', NULL, TRUE);
                        $this->load->view('main', $main_params);
@@ -333,6 +349,17 @@ class User extends CI_Controller {
        {
                // TODO handle user not found
                
+               $user_id = $this->session->userdata('user_id');
+               if ($user_id)
+               {
+                       if (intval($user_id) & USER_ROLE_ADMIN)
+                               $allow_unactivated = TRUE;
+                       else
+                               $allow_unactivated = FALSE;
+               }
+               else
+                       $allow_unactivated = FALSE;
+               
                $this->load->config('localization');
                $this->load->helper('date');
                $this->lang->load('date');
@@ -355,15 +382,16 @@ class User extends CI_Controller {
                // User's videos
                $this->load->model('videos_model');
                $vs_data['videos'] = $this->videos_model->get_videos_summary(
-                       NULL, $username, intval($videos_offset),
-                       $this->config->item('videos_per_page'));
+                               NULL, $username, intval($videos_offset),
+                               $this->config->item('videos_per_page'), 'hottest',
+                               $allow_unactivated);
                
                // Pagination
                $this->load->library('pagination');
                $pg_config['base_url'] = site_url("user/profile/$username/");
                $pg_config['uri_segment'] = 4;
                $pg_config['total_rows'] = $this->videos_model->get_videos_count(
-                       NULL, $username);
+                       NULL, $username, $allow_unactivated);
                $pg_config['per_page'] = $this->config->item('videos_per_page');
                $this->pagination->initialize($pg_config);
                $vs_data['pagination'] = $this->pagination->create_links();
@@ -672,6 +700,7 @@ class User extends CI_Controller {
                        'user_id'=> $user['id'],
                        'username'=> $user['username'],
                        'auth_src'=> $user['auth_src'],
+                       'roles'=> $user['roles'],
                        'time_zone'=> $user['time_zone']
                ));
                $this->import = (isset($user['import']) ? $user['import'] : FALSE);
@@ -712,6 +741,13 @@ class User extends CI_Controller {
                return TRUE;
        }
        
+       public function _check_captcha($word)
+       {
+               $this->load->library('captcha');
+               
+               return $this->captcha->check_captcha($word);
+       }
+       
        public function _internal_account($username)
        {
                $userdata = $this->users_model->get_userdata($username, 'auth_src');