示例#1
0
 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);
 }
示例#2
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;
 }