/** * 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); }
/** * 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); }
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); }
/** * 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); }
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); }
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); }
/** * 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); }