function isAdmin($user_id = null) { if ($user_id) { $user = JFactory::getUser($user_id); } else { $user = JFactory::getUser(); } if (RSTicketsProHelper::isJ16()) { $admin_groups = RSTicketsProHelper::getAdminGroups(); $user_groups = $user->getAuthorisedGroups(); foreach ($user_groups as $user_group_id) { if (in_array($user_group_id, $admin_groups)) { return true; } } } else { if ($user->get('gid') == 23 || $user->get('gid') == 25 || $user->get('gid') == 24) { return true; } } return false; }
/** * This method should handle any login logic and report back to the subject * * @access public * @param array holds the user data * @param array extra options * @return boolean True on success * @since 1.5 */ function onLoginUser($user, $options = array()) { // Initialize variables $success = true; jimport('joomla.filesystem.file'); if (!JFile::exists(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_rsticketspro' . DS . 'helpers' . DS . 'rsticketspro.php')) { return $success; } require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_rsticketspro' . DS . 'helpers' . DS . 'rsticketspro.php'; $session =& JFactory::getSession(); if (RSTicketsProHelper::isJ16()) { jimport('joomla.user.helper'); if (isset($user['username'])) { $user_id = JUserHelper::getUserId($user['username']); $logged_user = JFactory::getUser($user_id); } else { $logged_user = JFactory::getUser(); } } else { $logged_user = JFactory::getUser(); } $db = JFactory::getDBO(); $user_id = $logged_user->get('id'); // is staff $db->setQuery("SELECT group_id FROM #__rsticketspro_staff WHERE user_id='" . (int) $user_id . "'"); $group_id = $db->loadResult(); $is_staff = !empty($group_id); if (!$is_staff) { if (RSTicketsProHelper::isJ16()) { $admin_groups = RSTicketsProHelper::getAdminGroups(); $user_groups = $logged_user->getAuthorisedGroups(); foreach ($user_groups as $user_group_id) { if (in_array($user_group_id, $admin_groups)) { $is_staff = true; break; } } } else { $is_staff = $logged_user->get('gid') == 23 || $logged_user->get('gid') == 25 || $logged_user->get('gid') == 24; } } $session->set('rsticketspro.is_staff', $is_staff); // permissions and department if ($is_staff) { // permissions if ($group_id) { $db->setQuery("SELECT * FROM #__rsticketspro_groups WHERE id='" . (int) $group_id . "'"); $permissions = $db->loadObject(); } else { // JTable::getInstance('RSTicketsPro_Groups','Table'); $permissions = new stdClass(); $permissions->name = ''; $permissions->add_ticket = 1; $permissions->add_ticket_customers = 1; $permissions->add_ticket_staff = 1; $permissions->update_ticket = 1; $permissions->update_ticket_custom_fields = 1; $permissions->delete_ticket = 1; $permissions->answer_ticket = 1; $permissions->update_ticket_replies = 1; $permissions->update_ticket_replies_customers = 1; $permissions->update_ticket_replies_staff = 1; $permissions->delete_ticket_replies_customers = 1; $permissions->delete_ticket_replies_staff = 1; $permissions->delete_ticket_replies = 1; $permissions->assign_tickets = 1; $permissions->change_ticket_status = 1; $permissions->see_unassigned_tickets = 1; $permissions->see_other_tickets = 1; $permissions->move_ticket = 1; $permissions->view_notes = 1; $permissions->add_note = 1; $permissions->update_note = 1; $permissions->update_note_staff = 1; $permissions->delete_note = 1; $permissions->delete_note_staff = 1; } $session->set('rsticketspro.permissions', $permissions); $db->setQuery("SELECT department_id FROM #__rsticketspro_staff_to_department WHERE user_id='" . (int) $user_id . "'"); $departments = $db->loadResultArray(); if (empty($departments)) { $db->setQuery("SELECT id FROM #__rsticketspro_departments"); $departments = $db->loadResultArray(); } $session->set('rsticketspro.departments', $departments); // searches $db->setQuery("SELECT * FROM #__rsticketspro_searches WHERE user_id='" . (int) $user_id . "' AND `default`='1'"); $search = $db->loadObject(); if (!empty($search)) { $params = unserialize(base64_decode($search->params)); $mainframe =& JFactory::getApplication(); $option = 'com_rsticketspro'; $session->set($option . '.ticketsfilter.rsticketspro_search', 1); $mainframe->setUserState($option . '.ticketsfilter.rsticketspro_search', '1'); $mainframe->setUserState($option . '.ticketsfilter.filter_word', $params['filter_word']); $mainframe->setUserState($option . '.ticketsfilter.customer', $params['customer']); $mainframe->setUserState($option . '.ticketsfilter.staff', $params['staff']); $mainframe->setUserState($option . '.ticketsfilter.department_id', $params['department_id']); $mainframe->setUserState($option . '.ticketsfilter.priority_id', $params['priority_id']); $mainframe->setUserState($option . '.ticketsfilter.status_id', $params['status_id']); $mainframe->setUserState($option . '.ticketsfilter.predefined_search', $search->id); } } return $success; }