public function admin() { $request = $this->getPageRequest(); $view = $this->getView(); $manager = \Core\user()->checkAccess('p:/package_repository/licenses/manager'); if (!$manager) { return View::ERROR_ACCESSDENIED; } $generateform = new Form(); $generateform->set('callsmethod', 'PackageRepositoryLicenseController::_GenerateLicenses'); $generateform->addElement('text', ['name' => 'qty', 'title' => 'Number of Licenses', 'value' => 1]); $generateform->addElement('select', ['name' => 'duration', 'title' => 'Valid Duration', 'options' => ['1 month' => '1 Month', '3 month' => '3 Months', '6 month' => '6 Months', '12 month' => '1 Year', '18 month' => '18 Month', '24 month' => '2 Years', '36 month' => '3 Years', '5 year' => '5 Years'], 'value' => '12 month']); $generateform->addElement('submit', ['value' => 'Generate License(s)']); $table = new \Core\ListingTable\Table(); $table->setModelName('PackageRepositoryLicenseModel'); $table->setDefaultSort('expires', 'ASC'); $table->addColumn('License Key/Server ID', 'id'); $table->addColumn('License Password', 'password'); $table->addColumn('Comment', 'comment'); $table->addColumn('Expiration Date', 'expires'); $table->addColumn('IP Restriction', 'ip_restriction'); $table->loadFiltersFromRequest($request); $view->title = 'Package Repository License Manager'; $view->assign('generate_form', $generateform); $view->assign('listings', $table); $view->addControl('Manually Add License', '/packagerepositorylicense/add', 'add'); }
/** * Display a list of blacklisted IP addresses and subnets. */ public function blacklistip() { $view = $this->getView(); $request = $this->getPageRequest(); $listing = new Core\ListingTable\Table(); $listing->setModelName('IpBlacklistModel'); $listing->addColumn('IP or Network', 'ip_addr'); $listing->addColumn('Comment'); $listing->addColumn('Expires', 'expires'); $listing->addColumn('Created', 'created'); $listing->setDefaultSort('created', 'DESC'); $listing->loadFiltersFromRequest($request); $view->addControl(['title' => 'Ban IP...', 'icon' => 'add', 'link' => '/security/blacklistip/add']); $view->title = 'Blacklisted IP addresses'; $view->assign('listings', $listing); }
/** * See the details of a given search criteria, be it IP address, session, or user. */ public function details(){ $view = $this->getView(); $request = $this->getPageRequest(); $listing = new Core\ListingTable\Table(); $listing->setName('useractivity-details'); $listing->setLimit(100); $listing->addFilter( 'text', ['name' => 'user_id', 'title' => 'User ID', 'link' => FilterForm::LINK_TYPE_STANDARD] ); $listing->addFilter( 'text', ['name' => 'ip_addr', 'title' => 'IP Address', 'link' => FilterForm::LINK_TYPE_STANDARD] ); $listing->addFilter( 'text', ['name' => 'session_id', 'title' => 'Session ID', 'link' => FilterForm::LINK_TYPE_STANDARD] ); $pages = PageModel::Find(null, null, 'baseurl'); $allPages = ['' => '-- ' . t('STRING_ALL_PAGES') . ' --']; foreach($pages as $p){ /** @var PageModel $p */ $allPages[$p->get('baseurl')] = $p->get('baseurl'); } $listing->addFilter( 'select', [ 'name' => 'baseurl', 'title' => 'Page', 'options' => $allPages, 'link' => FilterForm::LINK_TYPE_STANDARD, ] ); $listing->addColumn('Time', 'datetime'); $listing->addColumn('User & Browser'); $listing->addColumn('Type', 'type'); $listing->addColumn('URL & Referrer', 'request'); $listing->addColumn('Referrer', 'referrer', false); $listing->addColumn('Session', 'session_id', false); $listing->addColumn('IP Address', 'ip_addr', false); $listing->addColumn('User Agent', 'useragent', false); $listing->addColumn('Generation', 'processing_time', false); $listing->addColumn('DB Reads', 'db_reads', false); $listing->addColumn('DB Writes', 'db_writes', false); $listing->setModelName('UserActivityModel'); $listing->setDefaultSort('datetime', 'DESC'); $listing->loadFiltersFromRequest($request); $view->title = 'User Activity Details'; $view->assign('listings', $listing); }
/** * Display a list of cron jobs that have ran. * @return int */ public function admin() { $view = $this->getView(); $request = $this->getPageRequest(); if (!\Core\user()->checkAccess('p:/cron/viewlog')) { return View::ERROR_ACCESSDENIED; } $listings = new Core\ListingTable\Table(); $listings->setModelName('CronLogModel'); $listings->addFilter('select', array('title' => 'Cron', 'name' => 'cron', 'options' => array('' => '-- All --', '1-minute' => '1-minute', '5-minute' => '5-minute', '15-minute' => '15-minute', '30-minute' => '30-minute', 'hourly' => 'hourly', 'daily' => 'daily', 'weekly' => 'weekly', 'monthly' => 'monthly'), 'link' => FilterForm::LINK_TYPE_STANDARD)); $listings->addFilter('select', array('title' => 'Status', 'name' => 'status', 'options' => array('' => '-- All --', 'pass' => 'pass', 'fail' => 'fail'), 'link' => FilterForm::LINK_TYPE_STANDARD)); $listings->addColumn('Cron', 'cron'); $listings->addColumn('Date Started', 'created'); $listings->addColumn('Duration', 'Duration'); $listings->setDefaultSort('created'); $listings->loadFiltersFromRequest($request); $view->mastertemplate = 'admin'; $view->title = 't:STRING_CRON_RESULTS'; $view->assign('listings', $listings); }
/** * Display a list of system logs that have been recorded. * * @return int */ public function log(){ $view = $this->getView(); $request = $this->getPageRequest(); if(!\Core\user()->checkAccess('p:/core/systemlog/view')){ return View::ERROR_ACCESSDENIED; } $codes = ['' => '-- All --']; $ds = Dataset::Init() ->table('system_log') ->select('code') ->unique(true) ->order('code') ->execute(); foreach($ds as $row){ $codes[$row['code']] = $row['code']; } $listings = new Core\ListingTable\Table(); $listings->setModelName('SystemLogModel'); $listings->setName('system-log'); $listings->setDefaultSort('datetime'); $listings->addFilter( 'select', array( 'title' => 'Type', 'name' => 'type', 'options' => array( '' => '-- All --', 'info' => 'Informative', 'error' => 'Warning/Error', 'security' => 'Security', ), 'link' => FilterForm::LINK_TYPE_STANDARD, ) ); $listings->addFilter( 'select', [ 'title' => 'Code', 'name' => 'code', 'options' => $codes, 'link' => FilterForm::LINK_TYPE_STANDARD, ] ); $listings->addFilter( 'date', [ 'title' => 'On or After', 'name' => 'datetime_onafter', 'linkname' => 'datetime', 'link' => FilterForm::LINK_TYPE_GE, ] ); $listings->addFilter( 'date', [ 'title' => 'On or Before', 'name' => 'datetime_onbefore', 'linkname' => 'datetime', 'link' => FilterForm::LINK_TYPE_LE, 'linkvaluesuffix' => ' 23:59:59' ] ); /*$filters->addElement( 'select', array( 'title' => 'Cron', 'name' => 'cron', 'options' => array( '' => '-- All --', 'hourly' => 'hourly', 'daily' => 'daily', 'weekly' => 'weekly', 'monthly' => 'monthly' ), 'link' => FilterForm::LINK_TYPE_STANDARD, ) ); $filters->addElement( 'select', array( 'title' => 'Status', 'name' => 'status', 'options' => array( '' => '-- All --', 'pass' => 'pass', 'fail' => 'fail' ), 'link' => FilterForm::LINK_TYPE_STANDARD, ) );*/ $listings->addFilter( 'hidden', array( 'title' => 'Session', 'name' => 'session_id', 'link' => FilterForm::LINK_TYPE_STANDARD, ) ); $listings->addFilter( 'user', array( 'title' => 'User', 'name' => 'affected_user_id', 'linkname' => [ 'affected_user_id', 'user_id', ] //'link' => FilterForm::LINK_TYPE_STANDARD, ) ); $listings->addFilter( 'text', [ 'title' => 'IP Address', 'name' => 'ip_addr', 'link' => FilterForm::LINK_TYPE_STARTSWITH, ] ); $listings->addColumn('Type', 'type'); $listings->addColumn('Date/Time', 'datetime'); $listings->addColumn('IP Address', 'ip_addr'); $listings->addColumn('Message', 'message'); //$listings->addColumn('Session', 'session_id'); $listings->addColumn('User', 'user_id', false); $listings->addColumn('Affected User', 'affected_user_id', false); $listings->loadFiltersFromRequest($request); $view->mastertemplate = 'admin'; $view->title = 't:STRING_SYSTEM_LOG'; $view->assign('listings', $listings); }