<?php /** * UserFrosting (http://www.userfrosting.com) * * @link https://github.com/userfrosting/UserFrosting * @license https://github.com/userfrosting/UserFrosting/blob/master/licenses/UserFrosting.md (MIT License) */ namespace UserFrosting\Sprinkle\Admin\Controller; use Illuminate\Database\Capsule\Manager as Capsule; use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request; use Slim\Exception\NotFoundException; use UserFrosting\Sprinkle\Core\Controller\SimpleController; use UserFrosting\Sprinkle\Core\Facades\Debug; use UserFrosting\Support\Exception\BadRequestException; use UserFrosting\Support\Exception\ForbiddenException; use UserFrosting\Support\Exception\HttpException; /** * Controller class for activity-related requests. * * @author Alex Weissman (https://alexanderweissman.com) */ class ActivityController extends SimpleController { /** * Returns a list of Activities * * Generates a list of activities, optionally paginated, sorted and/or filtered. * This page requires authentication. * Request type: GET */ public function getList($request, $response, $args) { // GET parameters $params = $request->getQueryParams(); /** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager */ $authorizer = $this->ci->authorizer; /** @var UserFrosting\Sprinkle\Account\Database\Models\User $currentUser */ $currentUser = $this->ci->currentUser; // Access-controlled page if (!$authorizer->checkAccess($currentUser, 'uri_activities')) { throw new ForbiddenException(); } /** @var UserFrosting\Sprinkle\Core\Util\ClassMapper $classMapper */ $classMapper = $this->ci->classMapper; $sprunje = $classMapper->createInstance('activity_sprunje', $classMapper, $params); $sprunje->extendQuery(function ($query) { return $query->with('user'); }); // Be careful how you consume this data - it has not been escaped and contains untrusted user-supplied content. // For example, if you plan to insert it into an HTML DOM, you must escape it on the client side (or use client-side templating). return $sprunje->toResponse($response); } /** * Renders the activity listing page. * * This page renders a table of user activities. * This page requires authentication. * Request type: GET */ public function pageList($request, $response, $args) { /** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager */ $authorizer = $this->ci->authorizer; /** @var UserFrosting\Sprinkle\Account\Database\Models\User $currentUser */ $currentUser = $this->ci->currentUser; // Access-controlled page if (!$authorizer->checkAccess($currentUser, 'uri_activities')) { throw new ForbiddenException(); } return $this->ci->view->render($response, 'pages/activities.html.twig'); } }