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.role.php
<?php /********************************************************************* class.role.php Role-based access Peter Rotich <peter@osticket.com> Copyright (c) 2014 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.forms.php'; class RoleModel extends VerySimpleModel { static $meta = array( 'table' => ROLE_TABLE, 'pk' => array('id'), 'joins' => array( 'extensions' => array( 'null' => true, 'list' => true, 'reverse' => 'StaffDeptAccess.role', ), 'agents' => array( 'reverse' => 'Staff.role', ), ), ); // Flags const FLAG_ENABLED = 0x0001; protected function hasFlag($flag) { return ($this->get('flags') & $flag) !== 0; } protected function clearFlag($flag) { return $this->set('flags', $this->get('flags') & ~$flag); } protected function setFlag($flag) { return $this->set('flags', $this->get('flags') | $flag); } function getId() { return $this->id; } function getName() { return $this->name; } function getCreateDate() { return $this->created; } function getUpdateDate() { return $this->updated; } function getInfo() { return $this->ht; } function isEnabled() { return $this->hasFlag(self::FLAG_ENABLED); } function isDeleteable() { return $this->extensions->count() + $this->agents->count() == 0; } } class Role extends RoleModel { var $form; var $entry; var $_perm; function hasPerm($perm) { return $this->getPermission()->has($perm); } function getPermission() { if (!$this->_perm) { $this->_perm = new RolePermission( isset($this->permissions) ? $this->permissions : array() ); } return $this->_perm; } function getPermissionInfo() { return $this->getPermission()->getInfo(); } function getTranslateTag($subtag) { return _H(sprintf('role.%s.%s', $subtag, $this->getId())); } function getLocal($subtag) { $tag = $this->getTranslateTag($subtag); $T = CustomDataTranslation::translate($tag); return $T != $tag ? $T : $this->ht[$subtag]; } function to_json() { $info = array( 'id' => $this->getId(), 'name' => $this->getName() ); return JsonDataEncoder::encode($info); } function __toString() { return (string) $this->getName(); } function __call($what, $args) { $rv = null; if($this->getPermission() && is_callable(array($this->_perm, $what))) $rv = $args ? call_user_func_array(array($this->_perm, $what), $args) : call_user_func(array($this->_perm, $what)); return $rv; } private function updatePerms($vars, &$errors=array()) { $config = array(); $permissions = $this->getPermission(); foreach ($vars as $k => $val) { if (!array_key_exists($val, $permissions->perms)) { $type = array('type' => 'edited', 'key' => $val); Signal::send('object.edited', $this, $type); } } foreach (RolePermission::allPermissions() as $g => $perms) { foreach($perms as $k => $v) { if (!in_array($k, $vars) && array_key_exists($k, $permissions->perms)) { $type = array('type' => 'edited', 'key' => $k); Signal::send('object.edited', $this, $type); } $permissions->set($k, in_array($k, $vars) ? 1 : 0); } } $this->permissions = $permissions->toJson(); } function update($vars, &$errors) { if (!$vars['name']) $errors['name'] = __('Name required'); elseif (($r=Role::lookup(array('name'=>$vars['name']))) && $r->getId() != $vars['id']) $errors['name'] = __('Name already in use'); elseif (!$vars['perms'] || !count($vars['perms'])) $errors['err'] = __('Must check at least one permission for the role'); if ($errors) return false; $this->name = $vars['name']; $this->notes = $vars['notes']; $this->updatePerms($vars['perms'], $errors); if (!$this->save(true)) return false; return true; } function save($refetch=false) { if (count($this->dirty)) $this->set('updated', new SqlFunction('NOW')); if (isset($this->dirty['notes'])) $this->notes = Format::sanitize($this->notes); return parent::save($refetch | $this->dirty); } function delete() { if (!$this->isDeleteable()) return false; if (!parent::delete()) return false; $type = array('type' => 'deleted'); Signal::send('object.deleted', $this, $type); // Remove dept access entries StaffDeptAccess::objects() ->filter(array('role_id'=>$this->getId())) ->update(array('role_id' => 0)); return true; } static function create($vars=false) { $role = new static($vars); $role->created = SqlFunction::NOW(); return $role; } static function __create($vars, &$errors) { $role = self::create($vars); if ($vars['permissions']) $role->updatePerms($vars['permissions']); $role->save(); return $role; } static function getRoles($criteria=null, $localize=true) { static $roles = null; if (!isset($roles) || $criteria) { $filters = array(); if (isset($criteria['enabled'])) { $q = new Q(array('flags__hasbit' => self::FLAG_ENABLED)); if (!$criteria['enabled']) $q->negate(); $filters[] = $q; } $query = self::objects() ->order_by('name') ->values_flat('id', 'name'); if ($filters) $query->filter($filters); $localize_this = function($id, $default) use ($localize) { if (!$localize) return $default; $tag = _H("role.name.{$id}"); $T = CustomDataTranslation::translate($tag); return $T != $tag ? $T : $default; }; $names = array(); foreach ($query as $row) $names[$row[0]] = $localize_this($row[0], $row[1]); if ($criteria || !$localize) return $names; $roles = $names; } return $roles; } static function getActiveRoles() { static $roles = null; if (!isset($roles)) $roles = self::getRoles(array('enabled' => true)); return $roles; } } class RolePermission { // Predefined groups are for sort order. // New groups will be appended to the bottom static protected $_permissions = array( /* @trans */ 'Tickets' => array(), /* @trans */ 'Tasks' => array(), /* @trans */ 'Users' => array(), /* @trans */ 'Organizations' => array(), /* @trans */ 'Knowledgebase' => array(), /* @trans */ 'Miscellaneous' => array(), ); var $perms; function __construct($perms) { $this->perms = $perms; if (is_string($this->perms)) $this->perms = JsonDataParser::parse($this->perms); elseif (!$this->perms) $this->perms = array(); } function has($perm) { return (bool) $this->get($perm); } function get($perm) { return @$this->perms[$perm]; } function set($perm, $value) { if (!$value) unset($this->perms[$perm]); else $this->perms[$perm] = $value; } function toJson() { return JsonDataEncoder::encode($this->perms); } function getInfo() { return $this->perms; } function merge($perms) { if ($perms instanceof self) $perms = $perms->getInfo(); foreach ($perms as $perm=>$value) { if (is_numeric($perm)) { // Array of perm names $perm = $value; $value = true; } $this->set($perm, $value); } } static function allPermissions() { static $sorted = false; if (!$sorted) { // Sort permissions in alphabetical order foreach (static::$_permissions as $k => $v) { asort(static::$_permissions[$k]); } $sorted = true; } return static::$_permissions; } static function register($group, $perms, $prepend=false) { if ($prepend) { static::$_permissions[$group] = array_merge( $perms, static::$_permissions[$group] ?: array()); } else { static::$_permissions[$group] = array_merge( static::$_permissions[$group] ?: array(), $perms); } } } class RoleQuickAddForm extends AbstractForm { function buildFields() { $permissions = array(); foreach (RolePermission::allPermissions() as $g => $perms) { foreach ($perms as $k => $v) { if ($v['primary']) continue; $permissions[$g][$k] = "{$v['title']} — {$v['desc']}"; } } return array( 'name' => new TextboxField(array( 'required' => true, 'configuration' => array( 'placeholder' => __('Name'), 'classes' => 'span12', 'autofocus' => true, 'length' => 128, ), )), 'clone' => new ChoiceField(array( 'default' => 0, 'choices' => array(0 => '— '.__('Clone an existing role').' —') + Role::getRoles(), 'configuration' => array( 'classes' => 'span12', ), )), 'perms' => new ChoiceField(array( 'choices' => $permissions, 'widget' => 'TabbedBoxChoicesWidget', 'configuration' => array( 'multiple' => true, 'classes' => 'vertical-pad', ), )), ); } function getClean($validate = true) { $clean = parent::getClean(); // Index permissions as ['ticket.edit' => 1] $clean['perms'] = array_keys($clean['perms']); return $clean; } function render($staff=true, $title=false, $options=array()) { return parent::render($staff, $title, $options + array('template' => 'dynamic-form-simple.tmpl.php')); } }
Close