public function getLogs() { $logs_data = AdminLog::with('user')->with('backup')->orderBy('id', 'desc')->paginate(50); $logs = View::make('coaster::partials.logs.table', array('logs' => $logs_data)); $this->layoutData['title'] = 'Logs'; $this->layoutData['content'] = View::make('coaster::pages.home.logs', array('logs' => $logs, 'pagination' => PaginatorRender::admin($logs_data))); }
public function postIndex() { // update blocks AdminLog::new_log('Updated Site-wide Content'); $versionId = PageVersion::add_new(0)->version_id; Block::submit(0, $versionId); $this->addAlert('success', 'Site-wide Content Updated'); return \redirect()->route('coaster.admin.blocks'); }
public function postEdit() { if (Auth::action('redirects.edit')) { $redirect = PageRedirect::find(Request::input('delete_id')); if (!empty($redirect)) { $redirect->delete(); AdminLog::new_log('Redirect url \'' . $redirect->redirect . '\' removed'); return 1; } } return 0; }
public function postUndo() { if ($logIds = Request::input('log_ids')) { if (is_string($logIds)) { $logIds = [$logIds]; } foreach ($logIds as $logId) { $log = AdminLog::find($logId); if ($log && (time() - strtotime($log->created_at) < config('coaster::admin.undo_time') && $log->user_id == Auth::user()->id) || Auth::action('backups.restore')) { if (Backup::restore($logId) == 1) { AdminLog::new_log('Restored log ID #' . $logId); } else { return Response::make('Error restoring log ID #' . $logId, 500); } } } return 'Success - restored ID #' . implode(', ', $logIds); } return 'Success'; }
public function postRename() { $itemId = substr(Request::input('id'), 5); $item = MenuItem::find($itemId); if (!empty($item)) { $item->custom_name = Request::input('custom_name'); $item->save(); $this->preload_menu_item_names(); // log action $item_name = $this->page_names[$item->page_id]; if ($item->custom_name) { AdminLog::new_log('Renamed menu item \'' . $item_name . '\' in \'' . Menu::name($item->menu_id) . '\' to ' . $item->custom_name); } else { AdminLog::new_log('Removed custom name for menu item \'' . $item_name . '\' in \'' . Menu::name($item->menu_id) . '\''); } return 1; } return null; }
public function postSort() { $pages = Request::input('list'); if (!empty($pages)) { $rootPages = Page::join('page_lang', 'page_lang.page_id', '=', 'pages.id')->where(function ($query) { $query->whereIn('page_lang.url', ['', '/']); })->where('page_lang.language_id', '=', Language::current())->where('link', '=', 0)->get(['pages.*'])->all(); $rootPageIds = array_map(function ($rootPage) { return $rootPage->id; }, $rootPages); $order = []; $changeUnderParentIds = []; foreach ($pages as $pageId => $parent) { $currentPage = Page::preload($pageId); if ($currentPage->exists) { $parent = empty($parent) || $parent == 'null' ? 0 : $parent; if ($currentPage->parent != $parent && $parent != 0 && (in_array($currentPage->id, $rootPageIds) || in_array($parent, $rootPageIds))) { return 0; // don't allow root/home page to be moved under other pages or other pages to be moved under it } // get the order value for current page $order[$parent] = isset($order[$parent]) ? $order[$parent] : 0; $order[$parent]++; if ($currentPage->parent != $parent || $currentPage->order != $order[$parent]) { if (Auth::action('pages.sort', ['page_id' => $parent]) && Auth::action('pages.sort', ['page_id' => $currentPage->parent])) { $parentPageName = $parent ? PageLang::preload($parent)->name : 'top level'; $pageName = PageLang::preload($pageId)->name; if ($parent != $currentPage->parent) { array_push($changeUnderParentIds, $parent, $currentPage->parent); AdminLog::new_log('Moved page \'' . $pageName . '\' under \'' . $parentPageName . '\' (Page ID ' . $currentPage->id . ')'); } if (!in_array($parent, $changeUnderParentIds)) { $changeUnderParentIds[] = $parent; AdminLog::new_log('Re-ordered pages in \'' . $parentPageName . '\' (Page ID ' . $currentPage->id . ')'); } $changeUnderParentIds = array_unique($changeUnderParentIds); $currentPage->parent = $parent; $currentPage->order = $order[$parent]; $currentPage->save(); } else { return 0; // error, can't move page to new location } } } else { return 0; // error, moved page no longer exists } } } return 1; }
public function getSearch() { PageSearchData::updateAllSearchData(); AdminLog::new_log('Search index updated'); // as ajax call return 1; }
public function postEdit(\Illuminate\Http\Request $request) { try { $theme_id = $request->get('theme_id'); $theme = Theme::find($theme_id); $file = $request->get('file'); $path = $request->get('path'); $f = fopen($path, "w"); fwrite($f, $file); AdminLog::new_log('Theme: \'' . $theme->theme . '\' updated (Page ID ' . $theme->id . ')'); return response(['success' => 1]); } catch (\Exception $e) { return response(['success' => 0, 'error' => $e->getMessage()]); } }
public function delete() { $page_name = PageLang::getName($this->id); $log_id = AdminLog::new_log('Page \'' . $page_name . '\' deleted (Page ID ' . $this->id . ')'); // make backups $page_versions = PageVersion::where('page_id', '=', $this->id); $page_langs = PageLang::where('page_id', '=', $this->id); $page_blocks = PageBlock::where('page_id', '=', $this->id); $menu_items = MenuItem::where('page_id', '=', $this->id)->orWhere('page_id', 'LIKE', $this->id . ',%'); $user_role_page_actions = UserRolePageAction::where('page_id', '=', $this->id); $page_groups = PageGroupPage::where('page_id', '=', $this->id); $publish_request_ids = []; foreach ($page_versions as $page_version) { $publish_request_ids[] = $page_version->id; } Backup::new_backup($log_id, '\\CoasterCms\\Models\\Page', $this); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PageVersion', $page_versions->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PageLang', $page_langs->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PageBlock', $page_blocks->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\MenuItem', $menu_items->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\UserRolePageAction', $user_role_page_actions->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PageGroupPage', $page_groups->get()); // publish requests if (!empty($publish_request_ids)) { $page_publish_requests = PagePublishRequests::where('page_version_id', '=', $publish_request_ids); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PagePublishRequests', $page_publish_requests->get()); $page_publish_requests->delete(); } // repeater data $repeater_block_ids = Block::getBlockIdsOfType('repeater'); if (!empty($repeater_block_ids)) { $repeater_blocks = PageBlock::whereIn('block_id', $repeater_block_ids)->where('page_id', $this->id)->get(); if (!$repeater_blocks->isEmpty()) { $repeater_ids = []; foreach ($repeater_blocks as $repeater_block) { $repeater_ids[] = $repeater_block->content; } $repeater_row_keys = PageBlockRepeaterRows::whereIn('repeater_id', $repeater_ids); $repeater_row_keys_get = $repeater_row_keys->get(); if (!$repeater_row_keys_get->isEmpty()) { $row_keys = []; foreach ($repeater_row_keys_get as $repeater_row_key) { $row_keys[] = $repeater_row_key->id; } $repeater_data = PageBlockRepeaterData::whereIn('row_key', $row_keys); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PageBlockRepeaterRows', $repeater_row_keys->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\PageBlockRepeaterData', $repeater_data->get()); $repeater_data->delete(); $repeater_row_keys->delete(); } } } // delete data $this->groups()->detach(); $page_versions->delete(); $page_langs->delete(); $page_blocks->delete(); $menu_items->delete(); $user_role_page_actions->delete(); PageSearchData::where('page_id', '=', $this->id)->delete(); parent::delete(); $return_log_ids = array($log_id); $child_pages = self::where('parent', '=', $this->id)->get(); if (!empty($child_pages)) { foreach ($child_pages as $child_page) { $log_ids = $child_page->delete(); $return_log_ids = array_merge($log_ids, $return_log_ids); } } sort($return_log_ids); return $return_log_ids; }
public function delete() { $log_id = AdminLog::new_log('User role \'' . $this->name . '\' deleted'); Backup::new_backup($log_id, '\\CoasterCms\\Models\\UserRole', $this); $actions = UserRoleAction::where('role_id', '=', $this->id); $page_actions = UserRolePageAction::where('role_id', '=', $this->id); Backup::new_backup($log_id, '\\CoasterCms\\Models\\UserRoleAction', $actions->get()); Backup::new_backup($log_id, '\\CoasterCms\\Models\\UserRolePageAction', $page_actions->get()); // delete data parent::delete(); $actions->delete(); $page_actions->delete(); return $log_id; }
/** * @param string $log * @param mixed $object */ public function addLogWithBackup($log, $object) { $logId = AdminLog::logWithBackup($log, $object); $this->_logger[$logId] = $log; }
public function delete() { $log_id = AdminLog::new_log('User \'' . $this->email . '\' deleted'); Backup::new_backup($log_id, '\\CoasterCms\\Models\\User', $this); // delete data parent::delete(); return $log_id; }
public function postAdd() { $authUser = Auth::user(); $v = Validator::make(Request::all(), array('email' => 'required|email', 'role' => 'required|integer')); $perm_issue = true; $role = UserRole::find(Request::input('role')); if (!empty($role) && $role->admin <= $authUser->role->admin) { $perm_issue = false; } if ($v->passes() && !$perm_issue) { $password = str_random(8); $new_user = new User(); $new_user->email = Request::input('email'); $new_user->role_id = Request::input('role'); $new_user->password = Hash::make($password); $new_user->save(); AdminLog::new_log('User \'' . $new_user->email . '\' added'); Mail::send('coaster::emails.new_account', array('email' => $new_user->email, 'password' => $password), function ($message) use($new_user) { $message->from(config('coaster::site.email')); $message->to($new_user->email); $message->subject(config('coaster::site.name') . ': New Account Details'); }); $failures = Mail::failures(); if (empty($failures)) { $email_message = 'An email has been sent to the new user with their login details.'; $email_status = 'success'; } else { $email_message = 'There was an error sending the login details to the new user.'; $email_status = 'warning'; } $this->layoutData['content'] = View::make('coaster::pages.users.add', array('success' => true, 'password' => $password, 'email_message' => $email_message, 'email_status' => $email_status)); } else { FormMessage::set($v->messages()); if ($perm_issue) { FormMessage::add('role', 'Don\'t have permission to create user with this role, or doesn\'t exist'); } $this->getAdd(); } }
/** * Return upload images, handler also uploads image if in request * @return string */ public function runHandler() { $currentData = $this->_defaultData($this->_block->getContent()); $uploadHandler = new GalleryUploadHandler(['print_response' => false, 'selected_data' => $currentData, 'script_url' => Request::url(), 'max_file_size' => 2000000, 'accept_file_types' => '/\\.(gif|jpe?g|png)$/i', 'upload_dir' => public_path() . '/uploads/system/gallery/' . $this->_block->name . '/' . $this->_block->getPageId() . '/', 'upload_url' => URL::to('/uploads/system/gallery/' . $this->_block->name . '/' . $this->_block->getPageId()) . '/']); if (!empty($uploadHandler->name)) { $order = 0; foreach ($currentData as $imageData) { if ($order < $imageData->order) { $order = $imageData->order; } } AdminLog::new_log('Uploaded files to Gallery (ID ' . $this->_block->id . ')'); $currentData[$uploadHandler->name] = new \stdClass(); $currentData[$uploadHandler->name]->caption = ''; $currentData[$uploadHandler->name]->order = $order + 1; $currentData[$uploadHandler->name]->path = '/' . $this->_block->getPageId() . '/'; $this->_block->updateContent(serialize($currentData)); } return $uploadHandler->get_response(); }