/**
  * Account settings
  */
 function index()
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/account_settings'));
     }
     // Active Sidebar_L Menu
     $data['accountinfo'] = true;
     $data['accountsettings'] = true;
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Retrieve countries, languages and timezones
     $data['countries'] = $this->ref_country_model->get_all();
     $data['languages'] = $this->ref_language_model->get_all();
     $data['zoneinfos'] = $this->ref_zoneinfo_model->get_all();
     // Split date of birth into month, day and year
     if ($data['account_details'] && $data['account_details']->dateofbirth) {
         $dateofbirth = strtotime($data['account_details']->dateofbirth);
         $data['account_details']->dob_month = mdate('%m', $dateofbirth);
         $data['account_details']->dob_day = mdate('%d', $dateofbirth);
         $data['account_details']->dob_year = mdate('%Y', $dateofbirth);
     }
     // Setup form validation
     $this->form_validation->set_error_delimiters('<div class="field_error">', '</div>');
     $this->form_validation->set_rules(array(array('field' => 'settings_email', 'label' => 'lang:settings_email', 'rules' => 'trim|required|valid_email|max_length[160]'), array('field' => 'settings_fullname', 'label' => 'lang:settings_fullname', 'rules' => 'trim|max_length[160]'), array('field' => 'settings_firstname', 'label' => 'lang:settings_firstname', 'rules' => 'trim|max_length[80]'), array('field' => 'settings_lastname', 'label' => 'lang:settings_lastname', 'rules' => 'trim|max_length[80]'), array('field' => 'settings_postalcode', 'label' => 'lang:settings_postalcode', 'rules' => 'trim|max_length[40]')));
     // Run form validation
     if ($this->form_validation->run()) {
         // If user is changing email and new email is already taken
         if (strtolower($this->input->post('settings_email', TRUE)) != strtolower($data['account']->email) && $this->email_check($this->input->post('settings_email', TRUE)) === TRUE) {
             $data['settings_email_error'] = lang('settings_email_exist');
         } elseif (!($this->input->post('settings_dob_month') && $this->input->post('settings_dob_day') && $this->input->post('settings_dob_year') || !$this->input->post('settings_dob_month') && !$this->input->post('settings_dob_day') && !$this->input->post('settings_dob_year'))) {
             $data['settings_dob_error'] = lang('settings_dateofbirth_incomplete');
         } else {
             // Update account email
             $this->account_model->update_email($data['account']->id, $this->input->post('settings_email', TRUE) ? $this->input->post('settings_email', TRUE) : NULL);
             // Update account details
             if ($this->input->post('settings_dob_month', TRUE) && $this->input->post('settings_dob_day', TRUE) && $this->input->post('settings_dob_year', TRUE)) {
                 $attributes['dateofbirth'] = mdate('%Y-%m-%d', strtotime($this->input->post('settings_dob_day', TRUE) . '-' . $this->input->post('settings_dob_month', TRUE) . '-' . $this->input->post('settings_dob_year', TRUE)));
             }
             $attributes['fullname'] = $this->input->post('settings_fullname', TRUE) ? $this->input->post('settings_fullname', TRUE) : NULL;
             $attributes['firstname'] = $this->input->post('settings_firstname', TRUE) ? $this->input->post('settings_firstname', TRUE) : NULL;
             $attributes['lastname'] = $this->input->post('settings_lastname', TRUE) ? $this->input->post('settings_lastname', TRUE) : NULL;
             $attributes['gender'] = $this->input->post('settings_gender', TRUE) ? $this->input->post('settings_gender', TRUE) : NULL;
             $attributes['postalcode'] = $this->input->post('settings_postalcode', TRUE) ? $this->input->post('settings_postalcode', TRUE) : NULL;
             $attributes['country'] = $this->input->post('settings_country', TRUE) ? $this->input->post('settings_country', TRUE) : NULL;
             $attributes['language'] = $this->input->post('settings_language', TRUE) ? $this->input->post('settings_language', TRUE) : NULL;
             $attributes['timezone'] = $this->input->post('settings_timezone', TRUE) ? $this->input->post('settings_timezone', TRUE) : NULL;
             $this->account_details_model->update($data['account']->id, $attributes);
             $data['settings_info'] = lang('settings_details_updated');
         }
     }
     $this->load->view('account/account_settings', $data);
 }
Esempio n. 2
0
 /**
  * Manage Users
  */
 function index()
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/manage_users'));
     }
     // Redirect unauthorized users to account profile page
     if (!$this->authorization->is_permitted('retrieve_users')) {
         redirect('account/account_profile');
     }
     $data['datatable'] = true;
     $data['adminpanel'] = true;
     $data['manageuser'] = true;
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Get all user information
     $all_accounts = $this->account_model->get();
     $all_account_details = $this->account_details_model->get();
     $all_account_roles = $this->rel_account_role_model->get();
     $admin_role = $this->acl_role_model->get_by_name('Admin');
     // Compile an array for the view to use
     $data['all_accounts'] = array();
     foreach ($all_accounts as $acc) {
         $current_user = array();
         $current_user['id'] = $acc->id;
         $current_user['username'] = $acc->username;
         $current_user['email'] = $acc->email;
         $current_user['firstname'] = '';
         $current_user['lastname'] = '';
         $current_user['is_admin'] = FALSE;
         $current_user['is_banned'] = isset($acc->suspendedon);
         foreach ($all_account_details as $det) {
             if ($det->account_id == $acc->id) {
                 $current_user['firstname'] = $det->firstname;
                 $current_user['lastname'] = $det->lastname;
             }
         }
         foreach ($all_account_roles as $acrole) {
             if ($acrole->account_id == $acc->id && $acrole->role_id == $admin_role->id) {
                 $current_user['is_admin'] = TRUE;
                 break;
             }
         }
         // Append to the array
         $data['all_accounts'][] = $current_user;
     }
     // Load manage users view
     $this->load->view('account/manage_users', $data);
 }
Esempio n. 3
0
 function index()
 {
     maintain_ssl();
     if ($this->authentication->is_signed_in()) {
         $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
         $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
         if ($this->authorization->is_permitted('manage_mailbox')) {
             $this->load->helper('mailbox');
             $data['mailinfo'] = mailInfo();
         }
     }
     $this->load->view('home', isset($data) ? $data : NULL);
 }
Esempio n. 4
0
 /**
  * Manage Roles
  */
 function index()
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/manage_roles'));
     }
     // Redirect unauthorized users to account profile page
     if (!$this->authorization->is_permitted('retrieve_roles')) {
         redirect('account/account_profile');
     }
     $data['datatable'] = true;
     $data['adminpanel'] = true;
     $data['manageroles'] = true;
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Get all permossions, roles, and role_permissions
     $roles = $this->acl_role_model->get();
     $permissions = $this->acl_permission_model->get();
     $role_permissions = $this->rel_role_permission_model->get();
     // Combine all these elements for display
     $data['roles'] = array();
     foreach ($roles as $role) {
         $current_role = array();
         $current_role['id'] = $role->id;
         $current_role['name'] = $role->name;
         $current_role['description'] = $role->description;
         $current_role['perm_list'] = array();
         $current_role['user_count'] = $this->acl_role_model->get_user_count($role->id);
         $current_role['is_disabled'] = isset($role->suspendedon);
         foreach ($role_permissions as $rperm) {
             if ($rperm->role_id == $role->id) {
                 foreach ($permissions as $perm) {
                     if ($rperm->permission_id == $perm->id) {
                         $current_role['perm_list'][] = array('id' => $perm->id, 'key' => $perm->key, 'title' => $perm->description);
                     }
                 }
             }
         }
         $data['roles'][] = $current_role;
     }
     // Load manage roles view
     $this->load->view('account/manage_roles', $data);
 }
Esempio n. 5
0
 function index()
 {
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'dashboard'));
     }
     if ($this->authentication->is_signed_in()) {
         $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
         $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
         if ($this->authorization->is_permitted('manage_mailbox')) {
             $this->load->helper('mailbox');
             $data['mailinfo'] = mailInfo();
         }
     }
     $this->load->view('qrscanner', isset($data) ? $data : NULL);
 }
Esempio n. 6
0
 function index()
 {
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'file'));
     }
     if ($this->authentication->is_signed_in()) {
         $this->data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
         $this->data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
         if ($this->authorization->is_permitted('manage_mailbox')) {
             $this->load->helper('mailbox');
             $data['mailinfo'] = mailInfo();
         }
     }
     //$this->data['scan'] = $this->scan($this->session->userdata('account_id'),FALSE);
     $this->data['dir'] = RES_DIR . '/user/' . $this->session->userdata('account_id');
     //$this->elfinder_init($this->data['dir']);
     $this->load->view('file', isset($this->data) ? $this->data : NULL);
 }
 /**
  * Manage Roles
  */
 function index()
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/manage_mailbox'));
     }
     // Redirect unauthorized users to account profile page
     if (!$this->authorization->is_permitted('manage_mailbox')) {
         redirect('account/account_profile');
     }
     $data['adminpanel'] = true;
     $data['managemailbox'] = true;
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     $data['mailbox'] = $this->mailbox_model->get();
     // Get all permossions, roles, and role_permissions
     $roles = $this->acl_role_model->get();
     $permissions = $this->acl_permission_model->get();
     $role_permissions = $this->rel_role_permission_model->get();
     $this->form_validation->set_rules(array(array('field' => 'mailbox_name', 'label' => 'lang:mailbox_name', 'rules' => 'trim|required'), array('field' => 'mailbox_email', 'label' => 'lang:mailbox_email', 'rules' => 'trim|required|valid_email'), array('field' => 'mailbox_password', 'label' => 'lang:mailbox_password', 'rules' => 'trim|required'), array('field' => 'mailbox_mail_server', 'label' => 'lang:mailbox_mail_server', 'rules' => 'trim|required'), array('field' => 'mailbox_mailbox', 'label' => 'lang:mailbox_mailbox', 'rules' => 'trim|required')));
     // Run form validation
     if ($this->form_validation->run()) {
         if (empty($data['mailbox'])) {
             $this->mailbox_model->create($this->input->post('mailbox_name', TRUE), $this->input->post('mailbox_email', TRUE), $this->input->post('mailbox_password', TRUE), $this->input->post('mailbox_mail_server', TRUE), $this->input->post('mailbox_mailbox', TRUE));
         } else {
             $this->mailbox_model->update($this->input->post('mailbox_name', TRUE), $this->input->post('mailbox_email', TRUE), $this->input->post('mailbox_password', TRUE), $this->input->post('mailbox_mail_server', TRUE), $this->input->post('mailbox_mailbox', TRUE));
         }
     }
     // Load manage roles view
     $this->load->view('account/manage_mailbox', $data);
 }
 /**
  * Account password
  */
 function index()
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/account_password'));
     }
     // Active Sidebar_L Menu
     $data['accountinfo'] = true;
     $data['accountpassword'] = true;
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Retrieve user's gravatar if available
     $data['gravatar'] = $this->gravatar->get_gravatar($data['account']->email);
     // No access to users without a password
     if (!$data['account']->password) {
         redirect('');
     }
     ### Setup form validation
     $this->form_validation->set_error_delimiters('<span class="field_error">', '</span>');
     $this->form_validation->set_rules(array(array('field' => 'password_new_password', 'label' => 'lang:password_new_password', 'rules' => 'trim|required|min_length[6]'), array('field' => 'password_retype_new_password', 'label' => 'lang:password_retype_new_password', 'rules' => 'trim|required|matches[password_new_password]')));
     ### Run form validation
     if ($this->form_validation->run()) {
         // Change user's password
         $this->account_model->update_password($data['account']->id, $this->input->post('password_new_password', TRUE));
         $this->session->set_flashdata('password_info', lang('password_password_has_been_changed'));
         redirect('account/account_password');
     }
     $this->load->view('account/account_password', $data);
 }
 /**
  * Account profile
  */
 function index($action = NULL)
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/account_profile'));
     }
     // Active Sidebar_L Menu
     $data['accountinfo'] = true;
     $data['accountprofile'] = true;
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Retrieve user's gravatar if available
     $data['gravatar'] = $this->gravatar->get_gravatar($data['account']->email);
     // Delete profile picture
     if ($action == 'delete') {
         unlink(FCPATH . RES_DIR . '/user/profile/' . $data['account_details']->picture);
         // delete previous picture
         $this->account_details_model->update($data['account']->id, array('picture' => NULL));
         redirect('account/account_profile');
     }
     // Setup form validation
     $this->form_validation->set_error_delimiters('<div class="field_error">', '</div>');
     $this->form_validation->set_rules(array(array('field' => 'profile_username', 'label' => 'lang:profile_username', 'rules' => 'trim|required|alpha_dash|min_length[2]|max_length[24]')));
     // Run form validation
     if ($this->form_validation->run()) {
         // If user is changing username and new username is already taken
         if (strtolower($this->input->post('profile_username', TRUE)) != strtolower($data['account']->username) && $this->username_check($this->input->post('profile_username', TRUE)) === TRUE) {
             $data['profile_username_error'] = lang('profile_username_taken');
             $error = TRUE;
         } else {
             $data['account']->username = $this->input->post('profile_username', TRUE);
             $this->account_model->update_username($data['account']->id, $this->input->post('profile_username', TRUE));
         }
         switch ($this->input->post('pic_selection')) {
             case "gravatar":
                 $this->account_details_model->update($data['account']->id, array('picture' => $data['gravatar']));
                 redirect(current_url());
                 break;
             default:
                 // If user has uploaded a file
                 if (isset($_FILES['account_picture_upload']) && $_FILES['account_picture_upload']['error'] != 4) {
                     // Load file uploading library - http://codeigniter.com/user_guide/libraries/file_uploading.html
                     $this->load->library('upload', array('overwrite' => TRUE, 'upload_path' => FCPATH . RES_DIR . '/user/profile', 'allowed_types' => 'jpg|png|gif', 'max_size' => '800'));
                     /// Try to upload the file
                     if (!$this->upload->do_upload('account_picture_upload')) {
                         $data['profile_picture_error'] = $this->upload->display_errors('', '');
                         $error = TRUE;
                     } else {
                         // Get uploaded picture data
                         $picture = $this->upload->data();
                         // Create picture thumbnail - http://codeigniter.com/user_guide/libraries/image_lib.html
                         $this->load->library('image_lib');
                         $this->image_lib->clear();
                         $this->image_lib->initialize(array('image_library' => 'gd2', 'source_image' => FCPATH . RES_DIR . '/user/profile/' . $picture['file_name'], 'new_image' => FCPATH . RES_DIR . '/user/profile/pic_' . md5($data['account']->id) . $picture['file_ext'], 'maintain_ratio' => FALSE, 'quality' => '100%', 'width' => 100, 'height' => 100));
                         // Try resizing the picture
                         if (!$this->image_lib->resize()) {
                             $data['profile_picture_error'] = $this->image_lib->display_errors();
                             $error = TRUE;
                         } else {
                             $data['account_details']->picture = 'pic_' . md5($data['account']->id) . $picture['file_ext'];
                             $this->account_details_model->update($data['account']->id, array('picture' => $data['account_details']->picture));
                         }
                         // Delete original uploaded file
                         unlink(FCPATH . RES_DIR . '/user/profile/' . $picture['file_name']);
                         redirect(current_url());
                     }
                 }
                 break;
         }
         // end switch
         if (!isset($error)) {
             $data['profile_info'] = lang('profile_updated');
         }
     }
     $this->load->view('account/account_profile', $data);
 }
Esempio n. 10
0
 /**
  * Linked accounts
  */
 function index()
 {
     // Enable SSL?
     maintain_ssl($this->config->item("ssl_enabled"));
     // Redirect unauthenticated users to signin page
     if (!$this->authentication->is_signed_in()) {
         redirect('account/sign_in/?continue=' . urlencode(base_url() . 'account/account_linked'));
     }
     // Active Sidebar_L Menu
     $data['accountinfo'] = true;
     $data['accountlinked'] = true;
     // Retrieve sign in user
     $data['account'] = $this->account_model->get_by_id($this->session->userdata('account_id'));
     $data['account_details'] = $this->account_details_model->get_by_account_id($this->session->userdata('account_id'));
     if ($this->authorization->is_permitted('manage_mailbox')) {
         $this->load->helper('mailbox');
         $data['mailinfo'] = mailInfo();
     }
     // Delete a linked account
     if ($this->input->post('facebook_id') || $this->input->post('twitter_id') || $this->input->post('openid')) {
         if ($this->input->post('facebook_id')) {
             $this->account_facebook_model->delete($this->input->post('facebook_id', TRUE));
         } elseif ($this->input->post('twitter_id')) {
             $this->account_twitter_model->delete($this->input->post('twitter_id', TRUE));
         } elseif ($this->input->post('openid')) {
             $this->account_openid_model->delete($this->input->post('openid', TRUE));
         }
         $this->session->set_flashdata('linked_info', lang('linked_linked_account_deleted'));
         redirect('account/account_linked');
     }
     // Check for linked accounts
     $data['num_of_linked_accounts'] = 0;
     // Get Facebook accounts
     if ($data['facebook_links'] = $this->account_facebook_model->get_by_account_id($this->session->userdata('account_id'))) {
         foreach ($data['facebook_links'] as $index => $facebook_link) {
             $data['num_of_linked_accounts']++;
         }
     }
     // Get Twitter accounts
     if ($data['twitter_links'] = $this->account_twitter_model->get_by_account_id($this->session->userdata('account_id'))) {
         $this->load->config('account/twitter');
         $this->load->helper('account/twitter');
         foreach ($data['twitter_links'] as $index => $twitter_link) {
             $data['num_of_linked_accounts']++;
             $epiTwitter = new EpiTwitter($this->config->item('twitter_consumer_key'), $this->config->item('twitter_consumer_secret'), $twitter_link->oauth_token, $twitter_link->oauth_token_secret);
             $data['twitter_links'][$index]->twitter = $epiTwitter->get_usersShow(array('user_id' => $twitter_link->twitter_id));
         }
     }
     // Get OpenID accounts
     if ($data['openid_links'] = $this->account_openid_model->get_by_account_id($this->session->userdata('account_id'))) {
         foreach ($data['openid_links'] as $index => $openid_link) {
             if (strpos($openid_link->openid, 'google.com')) {
                 $data['openid_links'][$index]->provider = 'google';
             } elseif (strpos($openid_link->openid, 'yahoo.com')) {
                 $data['openid_links'][$index]->provider = 'yahoo';
             } elseif (strpos($openid_link->openid, 'myspace.com')) {
                 $data['openid_links'][$index]->provider = 'myspace';
             } elseif (strpos($openid_link->openid, 'aol.com')) {
                 $data['openid_links'][$index]->provider = 'aol';
             } else {
                 $data['openid_links'][$index]->provider = 'openid';
             }
             $data['num_of_linked_accounts']++;
         }
     }
     $this->load->view('account/account_linked', $data);
 }