Ejemplo n.º 1
0
 function display($tpl = NULL)
 {
     $action = FSS_Input::getCmd('action');
     if ($action == "cancel") {
         $mainframe = JFactory::getApplication();
         $link = FSSRoute::_('index.php?option=com_fss&view=admin_support', false);
         $mainframe->redirect($link);
         return;
     }
     if ($action == "save" || $action == "apply") {
         $all = array('per_page', 'group_products', 'group_departments', 'group_cats', 'group_group', 'group_pri', 'return_on_reply', 'return_on_close', 'reverse_order', 'reports_separator');
         $values = array();
         $values = SupportUsers::getAllSettings();
         foreach ($all as $setting) {
             $new = FSS_Input::getString($setting, 0);
             $values->{$setting} = $new;
         }
         SupportUsers::updateUserSettings($values);
         if ($action == "save") {
             $link = FSSRoute::_('index.php?option=com_fss&view=admin_support', false);
         } else {
             $link = FSSRoute::_('index.php?option=com_fss&view=admin_support&layout=settings', false);
         }
         $mainframe = JFactory::getApplication();
         $mainframe->redirect($link, JText::_('SETTINGS_SAVED'));
         return;
     }
     $this->_display();
 }
Ejemplo n.º 2
0
 function in()
 {
     $current_user = JFactory::getUser()->id;
     $manager = FSS_Permission::auth("fss.ticket_admin.ooo", "com_fss.support_admin", JFactory::getUser()->id);
     $user_id = FSS_Input::getInt('user_id');
     if (!$manager && $current_user != $user_id) {
         return $this->cancel();
     }
     // update the current users setting
     $values = SupportUsers::getAllSettings($user_id);
     $values->out_of_office = 0;
     SupportUsers::updateUserSettings($values, $user_id);
     JFactory::getApplication()->redirect(FSSRoute::_("index.php?option=com_fss&view=admin_support&layout=listhandlers", false));
 }
Ejemplo n.º 3
0
 function ConvertUsers()
 {
     $db = JFactory::getDBO();
     $log = "";
     if (FSS_Helper::TableExists("#__fss_user")) {
         $qry = "SELECT * FROM #__fss_user";
         $db->setQuery($qry);
         $users = $db->loadObjectList();
         foreach ($users as $user) {
             $sigid = 0;
             if ($user->signature != "") {
                 // change sig!
                 $qry = "INSERT INTO #__fss_ticket_fragments (description, content, type, params) VALUES (";
                 $qry .= "'Personal', ";
                 $qry .= "'" . FSSJ3Helper::getEscaped($db, $user->signature) . "', ";
                 $qry .= "1, '" . FSSJ3Helper::getEscaped($db, json_encode(array('userid' => $user->id))) . "')";
                 $db->setQuery($qry);
                 $db->Query();
                 $sigid = $db->insertid();
                 $qry = "UPDATE #__fss_user SET signature = '' WHERE id = " . $user->id;
                 $db->setQuery($qry);
                 $db->Query();
                 $log .= "Converting signature for user id {$user->id}\n";
             }
             if ($user->settings != "" && substr($user->settings, 0, 1) != "{") {
                 // eg: per_page=15|group_products=0|group_departments=1|group_cats=0|group_group=0|group_pri=0|return_on_reply=1|return_on_close=0|reverse_order=1
                 $settings = explode("|", $user->settings);
                 $result = new stdClass();
                 foreach ($settings as $setting) {
                     list($setting, $value) = explode("=", $setting);
                     $result->{$setting} = $value;
                 }
                 $result->default_sig = $sigid;
                 SupportUsers::updateUserSettings($result, $user->user_id);
                 $qry = "UPDATE #__fss_user SET settings = '' WHERE id = " . $user->id;
                 $log .= "Converting settings for user id {$user->id}\n";
                 $db->setQuery($qry);
                 $db->Query();
             }
             // convert user permissions here!
             $rules = new stdClass();
             if ($user->mod_kb) {
                 $rules->moderation = new stdClass();
                 $rules->moderation->{'fss.mod.all'} = 1;
             }
             if ($user->reports) {
                 $rules->reports = new stdClass();
                 $rules->reports->{'fss.reports'} = 1;
                 $rules->reports->{'fss.reports.all'} = 1;
             }
             if ($user->groups) {
                 $rules->groups = new stdClass();
                 $rules->groups->{'fss.groups'} = 1;
             }
             if ($user->support) {
                 $rules->support_admin = new stdClass();
                 $rules->support_admin->{'fss.handler'} = 1;
             }
             if ($user->autoassignexc) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.dontassign'} = 1;
             }
             if (!$user->seeownonly) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.seeunassigned'} = 1;
                 $rules->support_admin->{'fss.handler.seeothers'} = 1;
             }
             if ($user->assignperms) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.assign.separate'} = 1;
             }
             if ($user->allprods) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.view.products'} = 1;
             } else {
                 $qry = "SELECT * FROM #__fss_user_prod WHERE user_id = " . (int) $user->id;
                 $db->setQuery($qry);
                 $rows = $db->loadObjectList();
                 $rules->view_products = new stdClass();
                 foreach ($rows as $row) {
                     $key = 'fss.handler.view.product.' . $row->prod_id;
                     $rules->view_products->{$key} = 1;
                 }
             }
             if ($user->alldepts) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.view.departments'} = 1;
             } else {
                 $qry = "SELECT * FROM #__fss_user_dept WHERE user_id = " . (int) $user->id;
                 $db->setQuery($qry);
                 $rows = $db->loadObjectList();
                 $rules->view_departments = new stdClass();
                 foreach ($rows as $row) {
                     $key = 'fss.handler.view.department.' . $row->ticket_dept_id;
                     $rules->view_departments->{$key} = 1;
                 }
             }
             if ($user->allcats) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.view.categories'} = 1;
             } else {
                 $qry = "SELECT * FROM #__fss_user_cat WHERE user_id = " . (int) $user->id;
                 $db->setQuery($qry);
                 $rows = $db->loadObjectList();
                 $rules->view_categories = new stdClass();
                 foreach ($rows as $row) {
                     $key = 'fss.handler.view.category.' . $row->ticket_cat_id;
                     $rules->view_categories->{$key} = 1;
                 }
             }
             if ($user->allprods_a) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.assign.products'} = 1;
             } else {
                 $qry = "SELECT * FROM #__fss_user_prod_a WHERE user_id = " . (int) $user->id;
                 $db->setQuery($qry);
                 $rows = $db->loadObjectList();
                 $rules->assign_products = new stdClass();
                 foreach ($rows as $row) {
                     $key = 'fss.handler.assign.product.' . $row->prod_id;
                     $rules->assign_products->{$key} = 1;
                 }
             }
             if ($user->alldepts_a) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.assign.departments'} = 1;
             } else {
                 $qry = "SELECT * FROM #__fss_user_dept_a WHERE user_id = " . (int) $user->id;
                 $db->setQuery($qry);
                 $rows = $db->loadObjectList();
                 $rules->assign_departments = new stdClass();
                 foreach ($rows as $row) {
                     $key = 'fss.handler.assign.department.' . $row->ticket_dept_id;
                     $rules->assign_departments->{$key} = 1;
                 }
             }
             if ($user->allcats_a) {
                 if (!isset($rules->support_admin)) {
                     $rules->support_admin = new stdClass();
                 }
                 $rules->support_admin->{'fss.handler.assign.categories'} = 1;
             } else {
                 $qry = "SELECT * FROM #__fss_user_cat_a WHERE user_id = " . (int) $user->id;
                 $db->setQuery($qry);
                 $rows = $db->loadObjectList();
                 $rules->assign_categories = new stdClass();
                 foreach ($rows as $row) {
                     $key = 'fss.handler.assign.category.' . $row->ticket_cat_id;
                     $rules->assign_categories->{$key} = 1;
                 }
             }
             if ($user->artperm > 0) {
                 $sets = array("faq", "kb", "announce", "glossary");
                 foreach ($sets as $set) {
                     $rules->{$set} = new stdClass();
                     switch ($user->artperm) {
                         case 3:
                             $rules->{$set}->{'core.edit.state'} = 1;
                         case 2:
                             $rules->{$set}->{'core.edit'} = 1;
                         case 1:
                             $rules->{$set}->{'core.edit.own'} = 1;
                             $rules->{$set}->{'core.create'} = 1;
                     }
                 }
             }
             SupportUsers::updateUserPermissions($rules, $user->user_id);
         }
     }
     if ($log == "") {
         $log = "All ok!";
     }
     return $log;
 }