function save($task) { $permissions = JRequest::getVar('jform'); $this->clean_post($permissions, "com_fss"); $this->clean_post($permissions, "faq"); $this->clean_post($permissions, "kb"); $this->clean_post($permissions, "glossary"); $this->clean_post($permissions, "announce"); $this->clean_post($permissions, "support_user"); $this->clean_post($permissions, "support_admin"); $this->clean_post($permissions, "support_admin_misc"); $this->clean_post($permissions, "support_admin_ticket"); $this->clean_post($permissions, "support_admin_ticket_cc"); $this->clean_post($permissions, "support_admin_ticket_other"); $this->clean_post($permissions, "support_admin_ticket_una"); $this->clean_post($permissions, "view_products"); $this->clean_post($permissions, "view_departments"); $this->clean_post($permissions, "view_categories"); $this->clean_post($permissions, "assign_products"); $this->clean_post($permissions, "assign_departments"); $this->clean_post($permissions, "assign_categories"); $this->clean_post($permissions, "reports"); $this->clean_post($permissions, "groups"); $this->clean_post($permissions, "moderation"); foreach ($permissions as $set => $values) { if (count($values) == 0) { unset($permissions[$set]); } } $db = JFactory::getDBO(); $user_id = JRequest::getVar('user_id'); SupportUsers::updateUserPermissions($permissions, $user_id); if ($task == "save") { $url = JRoute::_('index.php?option=com_fss&view=fusers', false); } else { if ($task == "save2new") { $url = JRoute::_('index.php?option=com_fss&controller=fuser&task=edit', false); } else { $url = JRoute::_('index.php?option=com_fss&controller=fuser&task=edit&cid[]=' . $user_id, false); } } $app = JFactory::getApplication(); $app->redirect($url); }
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; }