diff --git a/CHANGELOG.md b/CHANGELOG.md index 9287162..d0dbeed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.1] - (25/02/2020) + +### Added +- Completion condition testing +- See all fired events within a module + +### Changed +- Authentication now returns a group and role when needed by the activity +- Creating a module instance accepts an 'activity_for' type, user, group or role + ## [1.0.3] - (12/02/2020) ### Changed @@ -31,7 +41,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Open and save module instances - Change settings, permissions and third party connections -[Unreleased]: https://github.com/bristol-su/playground/compare/v1.0.3...HEAD +[Unreleased]: https://github.com/bristol-su/playground/compare/v1.1...HEAD +[1.1]: https://github.com/bristol-su/playground/compare/v1.0.3...v1.1 [1.0.3]: https://github.com/bristol-su/playground/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/bristol-su/playground/compare/v1.0.1...v1.0.2 [1.0.1]: https://github.com/bristol-su/playground/compare/v1.0...v1.0.1 diff --git a/app/Http/Controllers/Api/ModuleEventController.php b/app/Http/Controllers/Api/ModuleEventController.php new file mode 100644 index 0000000..7c7dfc4 --- /dev/null +++ b/app/Http/Controllers/Api/ModuleEventController.php @@ -0,0 +1,17 @@ +allForModule($module->getAlias()); + } + +} diff --git a/app/Http/Controllers/Api/ModuleInstanceCompletionConditionController.php b/app/Http/Controllers/Api/ModuleInstanceCompletionConditionController.php new file mode 100644 index 0000000..e51d4d3 --- /dev/null +++ b/app/Http/Controllers/Api/ModuleInstanceCompletionConditionController.php @@ -0,0 +1,43 @@ +create([ + 'alias' => $request->input('alias'), + 'name' => 'CC For ' . $moduleInstance->name, + 'description' => 'Completion Condition in the Playground', + 'settings' => $request->input('settings') + ]); + $moduleInstance->completion_condition_instance_id = $completion->id; + $moduleInstance->save(); + return $completion; + } + + public function test(ModuleInstance $moduleInstance, CompletionConditionTester $tester, ActivityInstanceResolver $activityInstanceResolver) + { + if($moduleInstance->completion_condition_instance_id === null) { + return abort(404, 'Could not find the completion condition'); + } + $activityInstance = $activityInstanceResolver->getActivityInstance(); + return [ + 'result' => $tester->evaluate($activityInstance, $moduleInstance->completionConditionInstance), + 'percentage' => $tester->evaluatePercentage($activityInstance, $moduleInstance->completionConditionInstance) + ]; + } + +} diff --git a/app/Http/Controllers/Api/ModuleInstanceEventController.php b/app/Http/Controllers/Api/ModuleInstanceEventController.php new file mode 100644 index 0000000..88e7f24 --- /dev/null +++ b/app/Http/Controllers/Api/ModuleInstanceEventController.php @@ -0,0 +1,17 @@ +id())->get(); + } + +} diff --git a/app/Http/Controllers/Api/ModuleModuleInstanceController.php b/app/Http/Controllers/Api/ModuleModuleInstanceController.php index 3680f9f..bdce429 100644 --- a/app/Http/Controllers/Api/ModuleModuleInstanceController.php +++ b/app/Http/Controllers/Api/ModuleModuleInstanceController.php @@ -28,7 +28,7 @@ class ModuleModuleInstanceController extends Controller public function store(Request $request, Module $module) { return (new ModuleInstanceFactory())->createModuleInstance( - $module, $request->input('name') + $module, $request->input('name'), $request->input('activity_for', 'user') )->load('activity'); } diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index b332239..bab1102 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -3,7 +3,11 @@ namespace BristolSU\Playground\Http\Controllers\Auth; use BristolSU\Playground\Http\Controllers\Controller; +use BristolSU\Support\User\Contracts\UserAuthentication; +use BristolSU\Support\User\Contracts\UserRepository; +use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Foundation\Auth\AuthenticatesUsers; +use Illuminate\Http\Request; class LoginController extends Controller { @@ -36,4 +40,5 @@ public function __construct() { $this->middleware('guest')->except('logout'); } + } diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 6dc372a..2ee61ae 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -3,7 +3,6 @@ namespace BristolSU\Playground\Http\Controllers\Auth; use BristolSU\Playground\Http\Controllers\Controller; -use BristolSU\Playground\User; use BristolSU\ControlDB\Contracts\Repositories\DataUser; use BristolSU\Support\User\Contracts\UserRepository; use Illuminate\Foundation\Auth\RegistersUsers; diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php index 6acc737..5179784 100644 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -26,4 +26,19 @@ class ResetPasswordController extends Controller * @var string */ protected $redirectTo = '/'; + + /** + * Get the password reset validation rules. + * + * @return array + */ + protected function rules() + { + return [ + 'token' => 'required', + 'email' => 'required|email', + 'password' => 'required|confirmed|min:6', + ]; + } + } diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index fa934bc..e2e20c5 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -2,6 +2,9 @@ namespace BristolSU\Playground\Providers; +use BristolSU\Playground\Support\Events\SaveEventInDatabase; +use BristolSU\Support\Events\Contracts\EventRepository; +use BristolSU\Support\Module\Contracts\ModuleRepository; use Illuminate\Auth\Events\Registered; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; @@ -16,8 +19,17 @@ class EventServiceProvider extends ServiceProvider * @var array */ protected $listen = [ -// Registered::class => [ -// SendEmailVerificationNotification::class, -// ], + ]; + + public function listens() + { + $listens = []; + foreach(app(ModuleRepository::class)->all() as $module) { + foreach(app(EventRepository::class)->allForModule($module->getAlias()) as $event) { + $listens[$event['event']] = [SaveEventInDatabase::class]; + } + } + return array_merge($this->listen, $listens); + } } diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index dbb0cb2..230cc05 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -3,6 +3,9 @@ namespace BristolSU\Playground\Providers; use BristolSU\Playground\Support\Permissions\ModulePermission; +use BristolSU\Support\Completion\Contracts\CompletionConditionInstance; +use BristolSU\Support\Completion\Contracts\CompletionConditionInstanceRepository; +use BristolSU\Support\Completion\Contracts\CompletionConditionRepository; use BristolSU\Support\ModuleInstance\ModuleInstance; use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Route; diff --git a/app/Support/Authentication/Authentication.php b/app/Support/Authentication/Authentication.php index 90f3ce6..c12ec03 100644 --- a/app/Support/Authentication/Authentication.php +++ b/app/Support/Authentication/Authentication.php @@ -2,13 +2,20 @@ namespace BristolSU\Playground\Support\Authentication; +use BristolSU\ControlDB\Contracts\Repositories\DataGroup; +use BristolSU\ControlDB\Contracts\Repositories\DataPosition; +use BristolSU\ControlDB\Contracts\Repositories\DataRole; +use BristolSU\ControlDB\Contracts\Repositories\Pivots\UserGroup; +use BristolSU\ControlDB\Contracts\Repositories\Pivots\UserRole; +use BristolSU\Support\Activity\Activity; use BristolSU\Support\Authentication\Contracts\Authentication as AuthenticationContract; use BristolSU\Support\User\Contracts\UserAuthentication; use BristolSU\ControlDB\Contracts\Models\Group; use BristolSU\ControlDB\Contracts\Models\Role; use BristolSU\ControlDB\Contracts\Models\User; use BristolSU\ControlDB\Contracts\Repositories\User as UserRepository; -use Illuminate\Contracts\Auth\Factory as AuthFactory; +use Illuminate\Support\Facades\Request; +use Illuminate\Support\Str; /** * Authentication contract that uses the database user @@ -72,10 +79,17 @@ public function setUser(User $user) * * This function does not provide a way to get groups * - * @return null + * @return Group|null */ public function getGroup() { + if($this->activity()->exists) { + if($this->activity()->activity_for === 'group') { + return $this->getGroupForUser(); + } elseif($this->activity()->activity_for === 'role') { + return $this->getRole()->group(); + } + } return null; } @@ -84,10 +98,13 @@ public function getGroup() * * This function does not provide a way to get roles * - * @return null + * @return Role|null */ public function getRole() { + if($this->activity()->exists && $this->activity()->activity_for === 'role') { + return $this->getRoleForUser(); + } return null; } @@ -127,4 +144,68 @@ public function setRole(Role $role) public function reset(): void { } + + protected function activity(): Activity + { + if(Request::route() && Request::route()->hasParameter('activity_slug')) { + return Request::route()->parameter('activity_slug'); + } + return app(Activity::class); + } + + /** + * Find or create a group the user is a member of + * + * @return Group + */ + protected function getGroupForUser(): Group { + $userGroupRepository = app(UserGroup::class); + $dataGroupRepository = app(DataGroup::class); + $groupRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Group::class); + + $groups = $userGroupRepository->getGroupsThroughUser($this->getUser()); + if($groups->count() > 0) { + return $groups->first(); + } + + $dataGroup = $dataGroupRepository->create('Group ' . Str::random(), ($this->getUser()->data()->email() ?? 'example-group@example.com')); + $group = $groupRepository->create($dataGroup->id()); + + $userGroupRepository->addUserToGroup($this->getUser(), $group); + return $group; + } + + /** + * Find or create a role the user is in + * + * @return Role + */ + protected function getRoleForUser(): Role { + $userRoleRepository = app(UserRole::class); + $dataRoleRepository = app(DataRole::class); + $roleRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Role::class); + $dataGroupRepository = app(DataGroup::class); + $groupRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Group::class); + $dataPositionRepository = app(DataPosition::class); + $positionRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Position::class); + + $roles = $userRoleRepository->getRolesThroughUser($this->getUser()); + if($roles->count() > 0) { + return $roles->first(); + } + + $dataRole = $dataRoleRepository->create('Role ' . Str::random(), ($this->getUser()->data()->email() ?? 'example-role@example.com')); + + $dataGroup = $dataGroupRepository->create('Group ' . Str::random(), ($this->getUser()->data()->email() ?? 'example-group@example.com')); + $group = $groupRepository->create($dataGroup->id()); + + $dataPosition = $dataPositionRepository->create('Position ' . Str::random(), 'Position ' . Str::random()); + $position = $positionRepository->create($dataPosition->id()); + + $role = $roleRepository->create($position->id(), $group->id(), $dataRole->id()); + + $userRoleRepository->addUserToRole($this->getUser(), $role); + + return $role; + } } diff --git a/app/Support/Authentication/UserProvider.php b/app/Support/Authentication/UserProvider.php index 55be660..a9bf03b 100644 --- a/app/Support/Authentication/UserProvider.php +++ b/app/Support/Authentication/UserProvider.php @@ -23,31 +23,31 @@ public function __construct(UserRepository $userRepository) } /** - * Retrieve a user by their unique email. + * Retrieve a user by their unique id. * - * @param mixed $email + * @param mixed $id * @return User|null */ - public function retrieveById($email) + public function retrieveById($id) { try { - return $this->userRepository->getById($email); + return $this->userRepository->getById($id); } catch (ModelNotFoundException $e) {} return null; } /** - * Retrieve a user by their unique email and "remember me" token. + * Retrieve a user by their unique id and "remember me" token. * - * @param mixed $email + * @param mixed $id * @param string $token * @return \Illuminate\Contracts\Auth\Authenticatable|null */ - public function retrieveByToken($email, $token) + public function retrieveByToken($id, $token) { try { $user = $this->userRepository->getFromRememberToken($token); - if($user->id === $email) { + if($user->id === $id) { return $user; } } catch (ModelNotFoundException $e) {} @@ -74,7 +74,6 @@ public function updateRememberToken(Authenticatable $user, $token) */ public function retrieveByCredentials(array $credentials) { - try { $dataUser = app(DataUser::class)->getWhere([ 'email' => $credentials['email'] diff --git a/app/Support/Events/Event.php b/app/Support/Events/Event.php new file mode 100644 index 0000000..d30ecf7 --- /dev/null +++ b/app/Support/Events/Event.php @@ -0,0 +1,61 @@ + 'array' + ]; + + protected $appends = [ + 'name', 'description' + ]; + + public function getNameAttribute() + { + $event = $this->getEventInformation(); + + if(is_array($event) && isset($event['name'])) { + return $event['name']; + } + return null; + } + + public function getDescriptionAttribute() + { + $event = $this->getEventInformation(); + + if(is_array($event) && isset($event['description'])) { + return $event['description']; + } + return null; + } + + public function getEventInformation() + { + return collect(app(EventManager::class)->all()) + ->flatten(1) + ->filter(function($eventArray) { + return isset($eventArray['event']) && $eventArray['event'] === $this->event; + }) + ->first(); + } + + /** @test */ + public function getDataAttribute(){ + if($this->attributes['data'] === null) { + return []; + } + return json_decode($this->attributes['data']); + } + +} diff --git a/app/Support/Events/SaveEventInDatabase.php b/app/Support/Events/SaveEventInDatabase.php new file mode 100644 index 0000000..e13389d --- /dev/null +++ b/app/Support/Events/SaveEventInDatabase.php @@ -0,0 +1,29 @@ + app(ModuleInstance::class)->id(), + 'event' => get_class($event) + ]; + if($event instanceof TriggerableEvent) { + $attributes['data'] = $event->getFields(); + } + Event::create($attributes); + } +} diff --git a/app/Support/Module/ModuleInstanceFactory.php b/app/Support/Module/ModuleInstanceFactory.php index 1d907e4..1c8ec3b 100644 --- a/app/Support/Module/ModuleInstanceFactory.php +++ b/app/Support/Module/ModuleInstanceFactory.php @@ -19,9 +19,10 @@ class ModuleInstanceFactory * * @param Module $module Module to create the module instance with * @param string $name Name to use throughout production + * @param string $for Who is the module instance for? * @return ModuleInstance Created module instance */ - public function createModuleInstance(Module $module, string $name): ModuleInstance + public function createModuleInstance(Module $module, string $name, string $for = 'user'): ModuleInstance { // Create logic $logic = Logic::create([ @@ -40,7 +41,7 @@ public function createModuleInstance(Module $module, string $name): ModuleInstan 'description' => 'Activity '.$activitySlug, 'slug' => $activitySlug, 'type' => 'open', - 'activity_for' => 'user', + 'activity_for' => $for, 'for_logic' => $logic->id, 'admin_logic' => $logic->id, ]); diff --git a/composer.json b/composer.json index 8e74395..75c0f68 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "bristol-su/playground", "type": "project", - "description": "A playground for experimenting and developing modules", + "description": "A playground for experimenting with and developing modules", "minimum-stability": "dev", "keywords": [ "portal", @@ -11,9 +11,11 @@ "license": "GPL-3.0-or-later", "require": { "php": "^7.2", - "bristol-su/support": "^2.0", - "bristol-su/upload-file": "dev-master", + "bristol-su/static-page": "dev-develop", + "bristol-su/support": "^3.0", + "bristol-su/template": "dev-master", "bristol-su/typeform": "dev-master", + "bristol-su/upload-file": "dev-master", "fideloper/proxy": "^4.0", "laravel/framework": "^6.2", "laravel/tinker": "^2.0" @@ -54,5 +56,17 @@ "BristolSU\\Playground\\Tests\\": "tests/" } }, - "prefer-stable": true + "prefer-stable": true, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + } } diff --git a/composer.lock b/composer.lock index 128fae0..342a4f4 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c30790c8650e43ca68588f3f3191ca29", + "content-hash": "f4a0652c5f888425423273f9342904a3", "packages": [ { "name": "bristol-su/control", @@ -59,18 +59,62 @@ "description": "An implementation of the control contracts", "time": "2020-02-04T22:25:16+00:00" }, + { + "name": "bristol-su/static-page", + "version": "dev-develop", + "source": { + "type": "git", + "url": "https://github.com/bristol-su/static-page.git", + "reference": "6b813d80a423140fcd290d7b4b1d84553d8de81f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bristol-su/static-page/zipball/6b813d80a423140fcd290d7b4b1d84553d8de81f", + "reference": "6b813d80a423140fcd290d7b4b1d84553d8de81f", + "shasum": "" + }, + "require": { + "bristol-su/support": "^3.0", + "php": "^7.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BristolSU\\Module\\StaticPage\\ModuleServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "BristolSU\\Module\\StaticPage\\": "app/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Toby Twigger", + "email": "tobytwigger1@gmail.com" + } + ], + "description": "A static page module for the Bristol SU Portal Project, to display text or HTML", + "time": "2020-02-22T13:39:29+00:00" + }, { "name": "bristol-su/support", - "version": "v2.1", + "version": "v3.0", "source": { "type": "git", "url": "https://github.com/bristol-su/support.git", - "reference": "da80354f8f30e7fdbd7519703db176692d994c3a" + "reference": "55eb919005460eef221b9ab641843f823f1c2766" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bristol-su/support/zipball/da80354f8f30e7fdbd7519703db176692d994c3a", - "reference": "da80354f8f30e7fdbd7519703db176692d994c3a", + "url": "https://api.github.com/repos/bristol-su/support/zipball/55eb919005460eef221b9ab641843f823f1c2766", + "reference": "55eb919005460eef221b9ab641843f823f1c2766", "shasum": "" }, "require": { @@ -82,7 +126,8 @@ "laravel/passport": "^8.0", "orchestra/testbench": "^4.0", "php": "^7.2", - "tobytwigger/form-schema-generator": "^1.1" + "tobytwigger/form-schema-generator": "^1.1", + "venturecraft/revisionable": "^1.33" }, "require-dev": { "brianium/paratest": "^3.0", @@ -95,7 +140,8 @@ "BristolSU\\Support\\SupportServiceProvider" ], "dont-discover": [ - "laravel/passport" + "laravel/passport", + "venturecraft/revisionable" ] } }, @@ -127,7 +173,51 @@ "portal", "sdk" ], - "time": "2020-02-05T16:31:28+00:00" + "time": "2020-02-22T13:23:58+00:00" + }, + { + "name": "bristol-su/template", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/bristol-su/template.git", + "reference": "84121781280ce86e0339c0aa0c13cee1579f6440" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bristol-su/template/zipball/84121781280ce86e0339c0aa0c13cee1579f6440", + "reference": "84121781280ce86e0339c0aa0c13cee1579f6440", + "shasum": "" + }, + "require": { + "bristol-su/support": "^3.0", + "php": "^7.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BristolSU\\Module\\Template\\ModuleServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "BristolSU\\Module\\Template\\": "app/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Toby Twigger", + "email": "tobytwigger1@gmail.com" + } + ], + "description": "A template module for the Bristol SU Portal Project", + "time": "2020-02-22T13:55:31+00:00" }, { "name": "bristol-su/typeform", @@ -135,16 +225,16 @@ "source": { "type": "git", "url": "https://github.com/bristol-su/typeform.git", - "reference": "7cc390161689c18d6b0017b04363e7844f87db80" + "reference": "fbda4c65cbfd684c23a5fee40b9816473de15787" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bristol-su/typeform/zipball/7cc390161689c18d6b0017b04363e7844f87db80", - "reference": "7cc390161689c18d6b0017b04363e7844f87db80", + "url": "https://api.github.com/repos/bristol-su/typeform/zipball/fbda4c65cbfd684c23a5fee40b9816473de15787", + "reference": "fbda4c65cbfd684c23a5fee40b9816473de15787", "shasum": "" }, "require": { - "bristol-su/support": "^2.0", + "bristol-su/support": "^3.0", "bristol-su/typeform-service": "dev-master", "ext-json": "*", "php": "^7.2", @@ -176,7 +266,7 @@ "email": "toby.twigger@bristol.ac.uk" } ], - "time": "2020-02-04T23:25:41+00:00" + "time": "2020-02-22T18:30:31+00:00" }, { "name": "bristol-su/typeform-service", @@ -184,16 +274,16 @@ "source": { "type": "git", "url": "https://github.com/bristol-su/typeform-service.git", - "reference": "2a741a48ce4440fc324ec6d69d66ff5ec3c379f4" + "reference": "55c375afe54ff03985fc7ae5b36cb9bd39abc977" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bristol-su/typeform-service/zipball/2a741a48ce4440fc324ec6d69d66ff5ec3c379f4", - "reference": "2a741a48ce4440fc324ec6d69d66ff5ec3c379f4", + "url": "https://api.github.com/repos/bristol-su/typeform-service/zipball/55c375afe54ff03985fc7ae5b36cb9bd39abc977", + "reference": "55c375afe54ff03985fc7ae5b36cb9bd39abc977", "shasum": "" }, "require": { - "bristol-su/support": "^2.0", + "bristol-su/support": "^3.0", "ext-json": "*", "php": "^7.2" }, @@ -224,7 +314,7 @@ } ], "description": "A third party service for typeform", - "time": "2020-02-04T23:25:47+00:00" + "time": "2020-02-22T17:47:36+00:00" }, { "name": "bristol-su/upload-file", @@ -232,16 +322,16 @@ "source": { "type": "git", "url": "https://github.com/bristol-su/upload-file.git", - "reference": "f24b4c9101b9e411a49619e9f30a0faa19a135bd" + "reference": "ae1b4e7fd6f7e8bf907ee7433298ec4b029cf933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bristol-su/upload-file/zipball/f24b4c9101b9e411a49619e9f30a0faa19a135bd", - "reference": "f24b4c9101b9e411a49619e9f30a0faa19a135bd", + "url": "https://api.github.com/repos/bristol-su/upload-file/zipball/ae1b4e7fd6f7e8bf907ee7433298ec4b029cf933", + "reference": "ae1b4e7fd6f7e8bf907ee7433298ec4b029cf933", "shasum": "" }, "require": { - "bristol-su/support": "^2.0", + "bristol-su/support": "^3.0", "php": "^7.2" }, "require-dev": { @@ -270,7 +360,7 @@ "email": "toby.twigger@bristol.ac.uk" } ], - "time": "2020-02-04T23:25:34+00:00" + "time": "2020-02-22T14:11:10+00:00" }, { "name": "defuse/php-encryption", @@ -859,16 +949,16 @@ }, { "name": "egulias/email-validator", - "version": "2.1.15", + "version": "2.1.17", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "e834eea5306d85d67de5a05db5882911d5b29357" + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e834eea5306d85d67de5a05db5882911d5b29357", - "reference": "e834eea5306d85d67de5a05db5882911d5b29357", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", + "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", "shasum": "" }, "require": { @@ -913,28 +1003,28 @@ "validation", "validator" ], - "time": "2020-01-20T21:40:59+00:00" + "time": "2020-02-13T22:36:52+00:00" }, { "name": "fideloper/proxy", - "version": "4.2.2", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "790194d5d3da89a713478875d2e2d05855a90a81" + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/790194d5d3da89a713478875d2e2d05855a90a81", - "reference": "790194d5d3da89a713478875d2e2d05855a90a81", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", + "reference": "ec38ad69ee378a1eec04fb0e417a97cfaf7ed11a", "shasum": "" }, "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0", + "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0", "php": ">=5.4.0" }, "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0", + "illuminate/http": "^5.0|^6.0|^7.0|^8.0", "mockery/mockery": "^1.0", "phpunit/phpunit": "^6.0" }, @@ -967,7 +1057,7 @@ "proxy", "trusted proxy" ], - "time": "2019-12-20T13:11:11+00:00" + "time": "2020-02-22T01:51:47+00:00" }, { "name": "firebase/php-jwt", @@ -1585,16 +1675,16 @@ }, { "name": "laravel/framework", - "version": "v6.14.0", + "version": "v6.16.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "9e78f1aeb2c60bd7badcbafc352a9a2c5863c60c" + "reference": "b47217e41868d3049ec545cbb713aa94c6f39e55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/9e78f1aeb2c60bd7badcbafc352a9a2c5863c60c", - "reference": "9e78f1aeb2c60bd7badcbafc352a9a2c5863c60c", + "url": "https://api.github.com/repos/laravel/framework/zipball/b47217e41868d3049ec545cbb713aa94c6f39e55", + "reference": "b47217e41868d3049ec545cbb713aa94c6f39e55", "shasum": "" }, "require": { @@ -1604,8 +1694,7 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "league/commonmark": "^1.1", - "league/commonmark-ext-table": "^2.1", + "league/commonmark": "^1.3", "league/flysystem": "^1.0.8", "monolog/monolog": "^1.12|^2.0", "nesbot/carbon": "^2.0", @@ -1663,7 +1752,7 @@ "aws/aws-sdk-php": "^3.0", "doctrine/dbal": "^2.6", "filp/whoops": "^2.4", - "guzzlehttp/guzzle": "^6.3", + "guzzlehttp/guzzle": "^6.3|^7.0", "league/flysystem-cached-adapter": "^1.0", "mockery/mockery": "^1.3.1", "moontoast/math": "^1.1", @@ -1683,7 +1772,7 @@ "ext-redis": "Required to use the Redis cache and queue drivers.", "filp/whoops": "Required for friendly error pages in development (^2.4).", "fzaninotto/faker": "Required to use the eloquent factory builder (^1.9.1).", - "guzzlehttp/guzzle": "Required to use the Mailgun mail driver and the ping methods on schedules (^6.0).", + "guzzlehttp/guzzle": "Required to use the Mailgun mail driver and the ping methods on schedules (^6.0|^7.0).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", @@ -1728,20 +1817,20 @@ "framework", "laravel" ], - "time": "2020-02-04T14:38:06+00:00" + "time": "2020-02-18T15:17:52+00:00" }, { "name": "laravel/passport", - "version": "v8.3.1", + "version": "v8.4.0", "source": { "type": "git", "url": "https://github.com/laravel/passport.git", - "reference": "98456cb16efd2ef7b41797e0a8559c9d8b4112f8" + "reference": "c1be259ff85109416e9e81c80fa4d3d611d6398a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/passport/zipball/98456cb16efd2ef7b41797e0a8559c9d8b4112f8", - "reference": "98456cb16efd2ef7b41797e0a8559c9d8b4112f8", + "url": "https://api.github.com/repos/laravel/passport/zipball/c1be259ff85109416e9e81c80fa4d3d611d6398a", + "reference": "c1be259ff85109416e9e81c80fa4d3d611d6398a", "shasum": "" }, "require": { @@ -1800,7 +1889,7 @@ "oauth", "passport" ], - "time": "2020-01-29T13:25:24+00:00" + "time": "2020-02-12T14:34:02+00:00" }, { "name": "laravel/tinker", @@ -1923,30 +2012,31 @@ }, { "name": "league/commonmark", - "version": "1.2.2", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "34cf4ddb3892c715ae785c880e6691d839cff88d" + "reference": "4f30be7a2cbf3bfa5788abab71384713e48f451f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/34cf4ddb3892c715ae785c880e6691d839cff88d", - "reference": "34cf4ddb3892c715ae785c880e6691d839cff88d", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/4f30be7a2cbf3bfa5788abab71384713e48f451f", + "reference": "4f30be7a2cbf3bfa5788abab71384713e48f451f", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^7.1" }, - "replace": { - "colinodell/commonmark-php": "*" + "conflict": { + "scrutinizer/ocular": "1.7.*" }, "require-dev": { "cebe/markdown": "~1.0", "commonmark/commonmark.js": "0.29.1", "erusev/parsedown": "~1.0", "ext-json": "*", + "github/gfm": "0.29.0", "michelf/php-markdown": "~1.4", "mikehaertl/php-shellcommand": "^1.4", "phpstan/phpstan-shim": "^0.11.5", @@ -1954,16 +2044,13 @@ "scrutinizer/ocular": "^1.5", "symfony/finder": "^4.2" }, - "suggest": { - "league/commonmark-extras": "Library of useful extensions including smart punctuation" - }, "bin": [ "bin/commonmark" ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -1983,79 +2070,19 @@ "role": "Lead Developer" } ], - "description": "PHP Markdown parser based on the CommonMark spec", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", "markdown", + "md", "parser" ], - "time": "2020-01-16T01:18:13+00:00" - }, - { - "name": "league/commonmark-ext-table", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/commonmark-ext-table.git", - "reference": "3228888ea69636e855efcf6636ff8e6316933fe7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark-ext-table/zipball/3228888ea69636e855efcf6636ff8e6316933fe7", - "reference": "3228888ea69636e855efcf6636ff8e6316933fe7", - "shasum": "" - }, - "require": { - "league/commonmark": "~0.19.3|^1.0", - "php": "^7.1" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpstan/phpstan": "~0.11", - "phpunit/phpunit": "^7.0|^8.0", - "symfony/var-dumper": "^4.0", - "vimeo/psalm": "^3.0" - }, - "type": "commonmark-extension", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - } - }, - "autoload": { - "psr-4": { - "League\\CommonMark\\Ext\\Table\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Martin Hasoň", - "email": "martin.hason@gmail.com" - }, - { - "name": "Webuni s.r.o.", - "homepage": "https://www.webuni.cz" - }, - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com" - } - ], - "description": "Table extension for league/commonmark", - "homepage": "https://github.com/thephpleague/commonmark-ext-table", - "keywords": [ - "commonmark", - "extension", - "markdown", - "table" - ], - "time": "2019-09-26T13:28:33+00:00" + "time": "2020-02-08T23:42:03+00:00" }, { "name": "league/event", @@ -2464,16 +2491,16 @@ }, { "name": "nesbot/carbon", - "version": "2.29.1", + "version": "2.30.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "e509be5bf2d703390e69e14496d9a1168452b0a2" + "reference": "912dff66d2690ca66abddb9b291a1df5f371d3b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e509be5bf2d703390e69e14496d9a1168452b0a2", - "reference": "e509be5bf2d703390e69e14496d9a1168452b0a2", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/912dff66d2690ca66abddb9b291a1df5f371d3b4", + "reference": "912dff66d2690ca66abddb9b291a1df5f371d3b4", "shasum": "" }, "require": { @@ -2530,7 +2557,7 @@ "datetime", "time" ], - "time": "2020-01-21T09:36:43+00:00" + "time": "2020-02-07T15:25:46+00:00" }, { "name": "nikic/php-parser", @@ -2961,41 +2988,38 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.4", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c" + "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/da3fd972d6bafd628114f7e7e036f45944b62e9c", - "reference": "da3fd972d6bafd628114f7e7e036f45944b62e9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/a48807183a4b819072f26e347bbd0b5199a9d15f", + "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpdocumentor/type-resolver": "0.4.*", - "phpunit/phpunit": "^6.4" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3006,10 +3030,14 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-12-28T18:55:12+00:00" + "time": "2020-02-09T09:16:15+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -3115,16 +3143,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "2.0.23", + "version": "2.0.24", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099" + "reference": "40998159a0907cc523e1f2d1904d45765613a617" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099", - "reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/40998159a0907cc523e1f2d1904d45765613a617", + "reference": "40998159a0907cc523e1f2d1904d45765613a617", "shasum": "" }, "require": { @@ -3203,7 +3231,7 @@ "x.509", "x509" ], - "time": "2019-09-17T03:41:22+00:00" + "time": "2020-02-04T12:15:04+00:00" }, { "name": "phpspec/prophecy", @@ -3965,16 +3993,16 @@ }, { "name": "ramsey/uuid", - "version": "3.9.2", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb" + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/7779489a47d443f845271badbdcedfe4df8e06fb", - "reference": "7779489a47d443f845271badbdcedfe4df8e06fb", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92", + "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92", "shasum": "" }, "require": { @@ -4048,7 +4076,7 @@ "identifier", "uuid" ], - "time": "2019-12-17T08:18:51+00:00" + "time": "2020-02-21T04:36:14+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -5354,16 +5382,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.13.1", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3" + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", - "reference": "f8f0b461be3385e56d6de3dbb5a0df24c0c275e3", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", "shasum": "" }, "require": { @@ -5375,7 +5403,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -5408,20 +5436,20 @@ "polyfill", "portable" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.13.1", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36" + "reference": "926832ce51059bb58211b7b2080a88e0c3b5328e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/a019efccc03f1a335af6b4f20c30f5ea8060be36", - "reference": "a019efccc03f1a335af6b4f20c30f5ea8060be36", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/926832ce51059bb58211b7b2080a88e0c3b5328e", + "reference": "926832ce51059bb58211b7b2080a88e0c3b5328e", "shasum": "" }, "require": { @@ -5433,7 +5461,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -5467,26 +5495,26 @@ "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.13.1", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" + "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", - "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6842f1a39cf7d580655688069a03dd7cd83d244a", + "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a", "shasum": "" }, "require": { "php": ">=5.3.3", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.9" + "symfony/polyfill-php72": "^1.10" }, "suggest": { "ext-intl": "For best performance" @@ -5494,7 +5522,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -5529,20 +5557,20 @@ "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-01-17T12:01:36+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", + "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", "shasum": "" }, "require": { @@ -5554,7 +5582,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -5588,20 +5616,20 @@ "portable", "shim" ], - "time": "2019-11-27T14:18:11+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.13.1", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" + "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", + "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", "shasum": "" }, "require": { @@ -5610,7 +5638,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -5643,20 +5671,20 @@ "portable", "shim" ], - "time": "2019-11-27T13:56:44+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.13.1", + "version": "v1.14.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/5e66a0fa1070bf46bec4bea7962d285108edd675", + "reference": "5e66a0fa1070bf46bec4bea7962d285108edd675", "shasum": "" }, "require": { @@ -5665,7 +5693,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-master": "1.14-dev" } }, "autoload": { @@ -5701,7 +5729,7 @@ "portable", "shim" ], - "time": "2019-11-27T16:25:15+00:00" + "time": "2020-01-13T11:15:53+00:00" }, { "name": "symfony/process", @@ -6289,6 +6317,59 @@ "description": "JSON schema generator in php, for vue-form-generator", "time": "2019-12-15T17:35:51+00:00" }, + { + "name": "venturecraft/revisionable", + "version": "1.33.0", + "source": { + "type": "git", + "url": "https://github.com/VentureCraft/revisionable.git", + "reference": "31034cf307808eae0bf776e9c13793495d7f19f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/VentureCraft/revisionable/zipball/31034cf307808eae0bf776e9c13793495d7f19f3", + "reference": "31034cf307808eae0bf776e9c13793495d7f19f3", + "shasum": "" + }, + "require": { + "illuminate/support": "~4.0|~5.0|~5.1|^6.0", + "laravel/framework": "~5.4|^6.0", + "php": ">=5.4.0" + }, + "require-dev": { + "orchestra/testbench": "~3.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/migrations" + ], + "psr-0": { + "Venturecraft\\Revisionable": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Duell", + "email": "me@chrisduell.com" + } + ], + "description": "Keep a revision history for your models without thinking, created as a package for use with Laravel", + "homepage": "http://github.com/venturecraft/revisionable", + "keywords": [ + "Audit", + "ardent", + "history", + "laravel", + "model", + "revision" + ], + "time": "2019-10-27T06:37:42+00:00" + }, { "name": "vlucas/phpdotenv", "version": "v3.6.0", @@ -6392,16 +6473,16 @@ }, { "name": "webmozart/assert", - "version": "1.6.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925" + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/573381c0a64f155a0d9a23f4b0c797194805b925", - "reference": "573381c0a64f155a0d9a23f4b0c797194805b925", + "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", + "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", "shasum": "" }, "require": { @@ -6436,7 +6517,7 @@ "check", "validate" ], - "time": "2019-11-24T13:36:37+00:00" + "time": "2020-02-14T12:15:55+00:00" } ], "packages-dev": [ @@ -6730,16 +6811,16 @@ }, { "name": "laravel/ui", - "version": "v1.1.2", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/laravel/ui.git", - "reference": "0287d4eee80aad718bdf7f90117cfe720c493064" + "reference": "bb64fca681566ca94457d490a00f899516e75664" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/0287d4eee80aad718bdf7f90117cfe720c493064", - "reference": "0287d4eee80aad718bdf7f90117cfe720c493064", + "url": "https://api.github.com/repos/laravel/ui/zipball/bb64fca681566ca94457d490a00f899516e75664", + "reference": "bb64fca681566ca94457d490a00f899516e75664", "shasum": "" }, "require": { @@ -6754,9 +6835,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, "laravel": { "providers": [ "Laravel\\Ui\\UiServiceProvider" @@ -6783,7 +6861,7 @@ "laravel", "ui" ], - "time": "2019-12-20T15:09:01+00:00" + "time": "2020-02-13T21:12:28+00:00" }, { "name": "nunomaduro/collision", @@ -6921,8 +6999,10 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "bristol-su/upload-file": 20, - "bristol-su/typeform": 20 + "bristol-su/static-page": 20, + "bristol-su/template": 20, + "bristol-su/typeform": 20, + "bristol-su/upload-file": 20 }, "prefer-stable": true, "prefer-lowest": false, diff --git a/config/auth.php b/config/auth.php index 43e04be..a7a6274 100644 --- a/config/auth.php +++ b/config/auth.php @@ -110,7 +110,7 @@ 'passwords' => [ 'users' => [ - 'provider' => 'users', + 'provider' => 'data-users', 'table' => 'password_resets', 'expire' => 60, 'throttle' => 60, diff --git a/config/static-page.php b/config/static-page.php new file mode 100644 index 0000000..44a01d4 --- /dev/null +++ b/config/static-page.php @@ -0,0 +1,6 @@ + 'Static Page', + 'description' => 'A module to show set text or HTML.', +]; \ No newline at end of file diff --git a/database/factories/EventFactory.php b/database/factories/EventFactory.php new file mode 100644 index 0000000..61b8ec5 --- /dev/null +++ b/database/factories/EventFactory.php @@ -0,0 +1,11 @@ +define(\BristolSU\Playground\Support\Events\Event::class, function(\Faker\Generator $faker) { + return [ + 'module_instance_id' => function() { + return factory(\BristolSU\Support\ModuleInstance\ModuleInstance::class)->create()->id; + }, + 'event' => 'EventNameSpace', + 'data' => [] + ]; +}); diff --git a/database/migrations/2020_02_21_164640_create_events_table.php b/database/migrations/2020_02_21_164640_create_events_table.php new file mode 100644 index 0000000..9ad9008 --- /dev/null +++ b/database/migrations/2020_02_21_164640_create_events_table.php @@ -0,0 +1,34 @@ +bigIncrements('id'); + $table->unsignedBigInteger('module_instance_id'); + $table->text('event'); + $table->json('data')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('events'); + } +} diff --git a/docs/Authentication_8php_source.html b/docs/Authentication_8php_source.html index 82ba745..72c9f92 100644 --- a/docs/Authentication_8php_source.html +++ b/docs/Authentication_8php_source.html @@ -66,24 +66,35 @@
Authentication.php
-Go to the documentation of this file.
1 <?php
2 
4 
10 use BristolSU\ControlDB\Contracts\Repositories\User as UserRepository;
11 use Illuminate\Contracts\Auth\Factory as AuthFactory;
12 
17 {
18 
24  private $auth;
25 
31  private $userRepository;
32 
37  public function __construct(UserAuthentication $auth, UserRepository $userRepository)
38  {
39  $this->auth = $auth;
40  $this->userRepository = $userRepository;
41  }
42 
48  public function getUser(): ?User
49  {
50  $user = $this->auth->getUser();
51  if($user instanceof \BristolSU\Support\User\User && $user->exists) {
52  return $this->userRepository->getById($user->id);
53  }
54  return null;
55  }
56 
65  public function setUser(User $user)
66  {
67  throw new \Exception('No implementation');
68  }
69 
77  public function getGroup()
78  {
79  return null;
80  }
81 
89  public function getRole()
90  {
91  return null;
92  }
93 
102  public function setGroup(Group $group)
103  {
104  throw new \Exception('No implementation');
105  }
106 
115  public function setRole(Role $role)
116  {
117  throw new \Exception('No implementation');
118  }
119 
127  public function reset(): void
128  {
129  }
130 }
- - +Go to the documentation of this file.
1 <?php
2 
4 
16 use BristolSU\ControlDB\Contracts\Repositories\User as UserRepository;
19 
24 {
25 
31  private $auth;
32 
38  private $userRepository;
39 
44  public function __construct(UserAuthentication $auth, UserRepository $userRepository)
45  {
46  $this->auth = $auth;
47  $this->userRepository = $userRepository;
48  }
49 
55  public function getUser(): ?User
56  {
57  $user = $this->auth->getUser();
58  if($user instanceof \BristolSU\Support\User\User && $user->exists) {
59  return $this->userRepository->getById($user->id);
60  }
61  return null;
62  }
63 
72  public function setUser(User $user)
73  {
74  throw new \Exception('No implementation');
75  }
76 
84  public function getGroup()
85  {
86  if($this->activity()->exists) {
87  if($this->activity()->activity_for === 'group') {
88  return $this->getGroupForUser();
89  } elseif($this->activity()->activity_for === 'role') {
90  return $this->getRole()->group();
91  }
92  }
93  return null;
94  }
95 
103  public function getRole()
104  {
105  if($this->activity()->exists && $this->activity()->activity_for === 'role') {
106  return $this->getRoleForUser();
107  }
108  return null;
109  }
110 
119  public function setGroup(Group $group)
120  {
121  throw new \Exception('No implementation');
122  }
123 
132  public function setRole(Role $role)
133  {
134  throw new \Exception('No implementation');
135  }
136 
144  public function reset(): void
145  {
146  }
147 
148  protected function activity(): Activity
149  {
150  if(Request::route() && Request::route()->hasParameter('activity_slug')) {
151  return Request::route()->parameter('activity_slug');
152  }
153  return app(Activity::class);
154  }
155 
161  protected function getGroupForUser(): Group {
162  $userGroupRepository = app(UserGroup::class);
163  $dataGroupRepository = app(DataGroup::class);
164  $groupRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Group::class);
165 
166  $groups = $userGroupRepository->getGroupsThroughUser($this->getUser());
167  if($groups->count() > 0) {
168  return $groups->first();
169  }
170 
171  $dataGroup = $dataGroupRepository->create('Group ' . Str::random(), ($this->getUser()->data()->email() ?? 'example-group@example.com'));
172  $group = $groupRepository->create($dataGroup->id());
173 
174  $userGroupRepository->addUserToGroup($this->getUser(), $group);
175  return $group;
176  }
177 
183  protected function getRoleForUser(): Role {
184  $userRoleRepository = app(UserRole::class);
185  $dataRoleRepository = app(DataRole::class);
186  $roleRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Role::class);
187  $dataGroupRepository = app(DataGroup::class);
188  $groupRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Group::class);
189  $dataPositionRepository = app(DataPosition::class);
190  $positionRepository = app(\BristolSU\ControlDB\Contracts\Repositories\Position::class);
191 
192  $roles = $userRoleRepository->getRolesThroughUser($this->getUser());
193  if($roles->count() > 0) {
194  return $roles->first();
195  }
196 
197  $dataRole = $dataRoleRepository->create('Role ' . Str::random(), ($this->getUser()->data()->email() ?? 'example-role@example.com'));
198 
199  $dataGroup = $dataGroupRepository->create('Group ' . Str::random(), ($this->getUser()->data()->email() ?? 'example-group@example.com'));
200  $group = $groupRepository->create($dataGroup->id());
201 
202  $dataPosition = $dataPositionRepository->create('Position ' . Str::random(), 'Position ' . Str::random());
203  $position = $positionRepository->create($dataPosition->id());
204 
205  $role = $roleRepository->create($position->id(), $group->id(), $dataRole->id());
206 
207  $userRoleRepository->addUserToRole($this->getUser(), $role);
208 
209  return $role;
210  }
211 }
+ + + + + - - + + + - + + + + + - - + + - - -
__construct(UserAuthentication $auth, UserRepository $userRepository)
+ + + +
__construct(UserAuthentication $auth, UserRepository $userRepository)
+ +
-Go to the documentation of this file.
1 <?php
2 
4 
6 use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
7 
11 class EventServiceProvider extends ServiceProvider
12 {
18  protected $listen = [
19 // Registered::class => [
20 // SendEmailVerificationNotification::class,
21 // ],
22  ];
23 }
+Go to the documentation of this file.
1 <?php
2 
4 
9 use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
10 
14 class EventServiceProvider extends ServiceProvider
15 {
21  protected $listen = [
22 
23  ];
24 
25  public function listens()
26  {
27  $listens = [];
28  foreach(app(ModuleRepository::class)->all() as $module) {
29  foreach(app(EventRepository::class)->allForModule($module->getAlias()) as $event) {
30  $listens[$event['event']] = [SaveEventInDatabase::class];
31  }
32  }
33  return array_merge($this->listen, $listens);
34  }
35 }
+ + + - + +
-Go to the documentation of this file.
1 <?php
2 
4 
7 
9 {
10  /*
11  |--------------------------------------------------------------------------
12  | Login Controller
13  |--------------------------------------------------------------------------
14  |
15  | This controller handles authenticating users for the application and
16  | redirecting them to your home screen. The controller uses a trait
17  | to conveniently provide its functionality to your applications.
18  |
19  */
20 
22 
28  protected $redirectTo = '/';
29 
35  public function __construct()
36  {
37  $this->middleware('guest')->except('logout');
38  }
39 }
+Go to the documentation of this file.
1 <?php
2 
4 
11 
13 {
14  /*
15  |--------------------------------------------------------------------------
16  | Login Controller
17  |--------------------------------------------------------------------------
18  |
19  | This controller handles authenticating users for the application and
20  | redirecting them to your home screen. The controller uses a trait
21  | to conveniently provide its functionality to your applications.
22  |
23  */
24 
26 
32  protected $redirectTo = '/';
33 
39  public function __construct()
40  {
41  $this->middleware('guest')->except('logout');
42  }
43 
44 }
- - + + + + - + + +
-Go to the documentation of this file.
1 <?php
2 
4 
10 
15 {
16 
24  public function createModuleInstance(Module $module, string $name): ModuleInstance
25  {
26  // Create logic
27  $logic = Logic::create([
28  'name' => $name,
29  'description' => 'Logic.'. $module->getAlias()
30  ]);
31 
32  // Create an activity
33  $activitySlug = Str::random(25);
34  while(Activity::where('slug', $activitySlug)->count() > 0) {
35  $activitySlug = Str::random(25);
36  }
37 
38  $activity = Activity::create([
39  'name' => 'Activity '.$activitySlug,
40  'description' => 'Activity '.$activitySlug,
41  'slug' => $activitySlug,
42  'type' => 'open',
43  'activity_for' => 'user',
44  'for_logic' => $logic->id,
45  'admin_logic' => $logic->id,
46  ]);
47 
48  // Create a module instance
49  $moduleInstanceSlug = Str::random(25);
50  while(ModuleInstance::where('slug', $moduleInstanceSlug)->count() > 0) {
51  $moduleInstanceSlug = Str::random(25);
52  }
53 
54  $moduleInstance = ModuleInstance::create([
55  'alias' => $module->getAlias(),
56  'name' => $name,
57  'description' => 'Module instance for the ' . $module->getName() . ' module with an alias ' . $module->getAlias(),
58  'active' => $logic->id,
59  'visible' => $logic->id,
60  'slug' => $moduleInstanceSlug,
61  'activity_id' => $activity->id,
62  ]);
63 
64  return $moduleInstance;
65  }
66 
67 }
+Go to the documentation of this file.
1 <?php
2 
4 
10 
15 {
16 
25  public function createModuleInstance(Module $module, string $name, string $for = 'user'): ModuleInstance
26  {
27  // Create logic
28  $logic = Logic::create([
29  'name' => $name,
30  'description' => 'Logic.'. $module->getAlias()
31  ]);
32 
33  // Create an activity
34  $activitySlug = Str::random(25);
35  while(Activity::where('slug', $activitySlug)->count() > 0) {
36  $activitySlug = Str::random(25);
37  }
38 
39  $activity = Activity::create([
40  'name' => 'Activity '.$activitySlug,
41  'description' => 'Activity '.$activitySlug,
42  'slug' => $activitySlug,
43  'type' => 'open',
44  'activity_for' => $for,
45  'for_logic' => $logic->id,
46  'admin_logic' => $logic->id,
47  ]);
48 
49  // Create a module instance
50  $moduleInstanceSlug = Str::random(25);
51  while(ModuleInstance::where('slug', $moduleInstanceSlug)->count() > 0) {
52  $moduleInstanceSlug = Str::random(25);
53  }
54 
55  $moduleInstance = ModuleInstance::create([
56  'alias' => $module->getAlias(),
57  'name' => $name,
58  'description' => 'Module instance for the ' . $module->getName() . ' module with an alias ' . $module->getAlias(),
59  'active' => $logic->id,
60  'visible' => $logic->id,
61  'slug' => $moduleInstanceSlug,
62  'activity_id' => $activity->id,
63  ]);
64 
65  return $moduleInstance;
66  }
67 
68 }
- +
createModuleInstance(Module $module, string $name, string $for='user')
diff --git a/docs/ModuleModuleInstanceController_8php_source.html b/docs/ModuleModuleInstanceController_8php_source.html index f907d27..2aab865 100644 --- a/docs/ModuleModuleInstanceController_8php_source.html +++ b/docs/ModuleModuleInstanceController_8php_source.html @@ -66,7 +66,7 @@
ModuleModuleInstanceController.php
-Go to the documentation of this file.
1 <?php
2 
4 
11 
16 {
17 
28  public function store(Request $request, Module $module)
29  {
30  return (new ModuleInstanceFactory())->createModuleInstance(
31  $module, $request->input('name')
32  )->load('activity');
33  }
34 
42  public function index(Module $module, ModuleInstanceRepository $repository)
43  {
44  return $repository->allWithAlias($module->getAlias())->map(function(ModuleInstance $module) {
45  return $module->load('activity');
46  });
47  }
48 
57  public function destroy(Module $module, ModuleInstance $moduleInstance)
58  {
59  $moduleInstance->delete();
60  }
61 
62 }
+Go to the documentation of this file.
1 <?php
2 
4 
11 
16 {
17 
28  public function store(Request $request, Module $module)
29  {
30  return (new ModuleInstanceFactory())->createModuleInstance(
31  $module, $request->input('name'), $request->input('activity_for', 'user')
32  )->load('activity');
33  }
34 
42  public function index(Module $module, ModuleInstanceRepository $repository)
43  {
44  return $repository->allWithAlias($module->getAlias())->map(function(ModuleInstance $module) {
45  return $module->load('activity');
46  });
47  }
48 
57  public function destroy(Module $module, ModuleInstance $moduleInstance)
58  {
59  $moduleInstance->delete();
60  }
61 
62 }
diff --git a/docs/RegisterController_8php_source.html b/docs/RegisterController_8php_source.html index 9cff9d9..4ecf25e 100644 --- a/docs/RegisterController_8php_source.html +++ b/docs/RegisterController_8php_source.html @@ -66,22 +66,21 @@
RegisterController.php
-Go to the documentation of this file.
1 <?php
2 
4 
13 
15 {
16  /*
17  |--------------------------------------------------------------------------
18  | Register Controller
19  |--------------------------------------------------------------------------
20  |
21  | This controller handles the registration of new users as well as their
22  | validation and creation. By default this controller uses a trait to
23  | provide this functionality without requiring any additional code.
24  |
25  */
26 
27  use RegistersUsers;
28 
34  protected $redirectTo = '/';
35 
41  public function __construct()
42  {
43  $this->middleware('guest');
44  }
45 
52  protected function validator(array $data)
53  {
54  return Validator::make($data, [
55  'first_name' => ['required', 'string', 'max:255'],
56  'last_name' => ['required', 'string', 'max:255'],
57  'email' => ['required', 'string', 'email', 'max:255', 'unique:control_data_user'],
58  'password' => ['required', 'string', 'min:5', 'confirmed'],
59  ]);
60  }
61 
68  protected function create(array $data)
69  {
70  $dataUser = app(DataUser::class)->create($data['first_name'], $data['last_name'], $data['email'], null, $data['first_name'] . ' ' . $data['last_name']);
71  $controlUser = app(\BristolSU\ControlDB\Contracts\Repositories\User::class)->create($dataUser->id());
72 
73  $databaseUser = app(UserRepository::class)->create([
74  'control_id' => $controlUser->id()
75  ]);
76 
77  $databaseUser->email_verified_at = Carbon::now();
78  $databaseUser->password = Hash::make($data['password']);
79  $databaseUser->save();
80  return $databaseUser;
81 
82  }
83 }
+Go to the documentation of this file.
1 <?php
2 
4 
12 
14 {
15  /*
16  |--------------------------------------------------------------------------
17  | Register Controller
18  |--------------------------------------------------------------------------
19  |
20  | This controller handles the registration of new users as well as their
21  | validation and creation. By default this controller uses a trait to
22  | provide this functionality without requiring any additional code.
23  |
24  */
25 
26  use RegistersUsers;
27 
33  protected $redirectTo = '/';
34 
40  public function __construct()
41  {
42  $this->middleware('guest');
43  }
44 
51  protected function validator(array $data)
52  {
53  return Validator::make($data, [
54  'first_name' => ['required', 'string', 'max:255'],
55  'last_name' => ['required', 'string', 'max:255'],
56  'email' => ['required', 'string', 'email', 'max:255', 'unique:control_data_user'],
57  'password' => ['required', 'string', 'min:5', 'confirmed'],
58  ]);
59  }
60 
67  protected function create(array $data)
68  {
69  $dataUser = app(DataUser::class)->create($data['first_name'], $data['last_name'], $data['email'], null, $data['first_name'] . ' ' . $data['last_name']);
70  $controlUser = app(\BristolSU\ControlDB\Contracts\Repositories\User::class)->create($dataUser->id());
71 
72  $databaseUser = app(UserRepository::class)->create([
73  'control_id' => $controlUser->id()
74  ]);
75 
76  $databaseUser->email_verified_at = Carbon::now();
77  $databaseUser->password = Hash::make($data['password']);
78  $databaseUser->save();
79  return $databaseUser;
80 
81  }
82 }
- + - - + - + - + - +
diff --git a/docs/ResetPasswordController_8php_source.html b/docs/ResetPasswordController_8php_source.html index 845372a..8c71998 100644 --- a/docs/ResetPasswordController_8php_source.html +++ b/docs/ResetPasswordController_8php_source.html @@ -66,9 +66,10 @@
ResetPasswordController.php
-Go to the documentation of this file.
1 <?php
2 
4 
7 
9 {
10  /*
11  |--------------------------------------------------------------------------
12  | Password Reset Controller
13  |--------------------------------------------------------------------------
14  |
15  | This controller is responsible for handling password reset requests
16  | and uses a simple trait to include this behavior. You're free to
17  | explore this trait and override any methods you wish to tweak.
18  |
19  */
20 
21  use ResetsPasswords;
22 
28  protected $redirectTo = '/';
29 }
+Go to the documentation of this file.
1 <?php
2 
4 
7 
9 {
10  /*
11  |--------------------------------------------------------------------------
12  | Password Reset Controller
13  |--------------------------------------------------------------------------
14  |
15  | This controller is responsible for handling password reset requests
16  | and uses a simple trait to include this behavior. You're free to
17  | explore this trait and override any methods you wish to tweak.
18  |
19  */
20 
21  use ResetsPasswords;
22 
28  protected $redirectTo = '/';
29 
35  protected function rules()
36  {
37  return [
38  'token' => 'required',
39  'email' => 'required|email',
40  'password' => 'required|confirmed|min:6',
41  ];
42  }
43 
44 }
+ diff --git a/docs/RouteServiceProvider_8php_source.html b/docs/RouteServiceProvider_8php_source.html index b89a1ff..d49a8ec 100644 --- a/docs/RouteServiceProvider_8php_source.html +++ b/docs/RouteServiceProvider_8php_source.html @@ -66,16 +66,19 @@
RouteServiceProvider.php
-Go to the documentation of this file.
1 <?php
2 
4 
7 use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
9 
13 class RouteServiceProvider extends ServiceProvider
14 {
22  protected $namespace = 'BristolSU\Playground\Http\Controllers';
23 
31  public function boot()
32  {
33  Route::bind('module_permission_override', function($id) {
34  return ModulePermission::findOrFail($id);
35  });
36 
37 
38  Route::bind('module_instance_override', function($slug) {
39  return ModuleInstance::where('slug', $slug)->firstOrFail();
40  });
41 
42  parent::boot();
43  }
44 
50  public function map()
51  {
52  $this->mapApiRoutes();
53 
54  $this->mapWebRoutes();
55 
56  //
57  }
58 
66  protected function mapWebRoutes()
67  {
68  Route::middleware('web')
69  ->namespace($this->namespace)
70  ->group(base_path('routes/web.php'));
71  }
72 
80  protected function mapApiRoutes()
81  {
82  Route::prefix('api')
83  ->middleware('api')
84  ->namespace($this->namespace)
85  ->group(base_path('routes/api.php'));
86  }
87 }
+Go to the documentation of this file.
1 <?php
2 
4 
10 use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
12 
16 class RouteServiceProvider extends ServiceProvider
17 {
25  protected $namespace = 'BristolSU\Playground\Http\Controllers';
26 
34  public function boot()
35  {
36  Route::bind('module_permission_override', function($id) {
37  return ModulePermission::findOrFail($id);
38  });
39 
40 
41  Route::bind('module_instance_override', function($slug) {
42  return ModuleInstance::where('slug', $slug)->firstOrFail();
43  });
44 
45  parent::boot();
46  }
47 
53  public function map()
54  {
55  $this->mapApiRoutes();
56 
57  $this->mapWebRoutes();
58 
59  //
60  }
61 
69  protected function mapWebRoutes()
70  {
71  Route::middleware('web')
72  ->namespace($this->namespace)
73  ->group(base_path('routes/web.php'));
74  }
75 
83  protected function mapApiRoutes()
84  {
85  Route::prefix('api')
86  ->middleware('api')
87  ->namespace($this->namespace)
88  ->group(base_path('routes/api.php'));
89  }
90 }
- + + - + + + - - + + - +
-Go to the documentation of this file.
1 <?php
2 
4 
11 
12 class UserProvider implements \Illuminate\Contracts\Auth\UserProvider
13 {
14 
18  private $userRepository;
19 
20  public function __construct(UserRepository $userRepository)
21  {
22  $this->userRepository = $userRepository;
23  }
24 
31  public function retrieveById($email)
32  {
33  try {
34  return $this->userRepository->getById($email);
35  } catch (ModelNotFoundException $e) {}
36  return null;
37  }
38 
46  public function retrieveByToken($email, $token)
47  {
48  try {
49  $user = $this->userRepository->getFromRememberToken($token);
50  if($user->id === $email) {
51  return $user;
52  }
53  } catch (ModelNotFoundException $e) {}
54  return null;
55  }
56 
64  public function updateRememberToken(Authenticatable $user, $token)
65  {
66  $this->userRepository->setRememberToken($user->id, $token);
67  }
68 
75  public function retrieveByCredentials(array $credentials)
76  {
77 
78  try {
79  $dataUser = app(DataUser::class)->getWhere([
80  'email' => $credentials['email']
81  ]);
82  } catch (ModelNotFoundException $e) {
83  return null;
84  }
85 
86  try {
87  $controlUser = app(\BristolSU\ControlDB\Contracts\Repositories\User::class)->getByDataProviderId($dataUser->id());
88  } catch (ModelNotFoundException $e) {
89  return null;
90  }
91 
92  try {
93  $user = $this->userRepository->getFromControlId($controlUser->id());
94  } catch (ModelNotFoundException $e) {
95  return null;
96  }
97 
98  return $user;
99  }
100 
108  public function validateCredentials(Authenticatable $user, array $credentials)
109  {
110  if(app(Hasher::class)->check($credentials['password'], $user->password)) {
111  return true;
112  }
113  return false;
114  }
115 }
+Go to the documentation of this file.
1 <?php
2 
4 
11 
12 class UserProvider implements \Illuminate\Contracts\Auth\UserProvider
13 {
14 
18  private $userRepository;
19 
20  public function __construct(UserRepository $userRepository)
21  {
22  $this->userRepository = $userRepository;
23  }
24 
31  public function retrieveById($id)
32  {
33  try {
34  return $this->userRepository->getById($id);
35  } catch (ModelNotFoundException $e) {}
36  return null;
37  }
38 
46  public function retrieveByToken($id, $token)
47  {
48  try {
49  $user = $this->userRepository->getFromRememberToken($token);
50  if($user->id === $id) {
51  return $user;
52  }
53  } catch (ModelNotFoundException $e) {}
54  return null;
55  }
56 
64  public function updateRememberToken(Authenticatable $user, $token)
65  {
66  $this->userRepository->setRememberToken($user->id, $token);
67  }
68 
75  public function retrieveByCredentials(array $credentials)
76  {
77  try {
78  $dataUser = app(DataUser::class)->getWhere([
79  'email' => $credentials['email']
80  ]);
81  } catch (ModelNotFoundException $e) {
82  return null;
83  }
84 
85  try {
86  $controlUser = app(\BristolSU\ControlDB\Contracts\Repositories\User::class)->getByDataProviderId($dataUser->id());
87  } catch (ModelNotFoundException $e) {
88  return null;
89  }
90 
91  try {
92  $user = $this->userRepository->getFromControlId($controlUser->id());
93  } catch (ModelNotFoundException $e) {
94  return null;
95  }
96 
97  return $user;
98  }
99 
107  public function validateCredentials(Authenticatable $user, array $credentials)
108  {
109  if(app(Hasher::class)->check($credentials['password'], $user->password)) {
110  return true;
111  }
112  return false;
113  }
114 }
-
validateCredentials(Authenticatable $user, array $credentials)
+
validateCredentials(Authenticatable $user, array $credentials)
- + - +
diff --git a/docs/annotated.html b/docs/annotated.html index 16dc9d7..928dc18 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -77,45 +77,51 @@  NApi  CConnectionController  CModuleController - CModuleInstancePermissionController - CModuleInstanceServiceController - CModuleInstanceSettingController - CModuleModuleInstanceController - CServiceConnectionController - CServiceConnectorController - NAuth - CConfirmPasswordController - CForgotPasswordController - CLoginController - CRegisterController - CResetPasswordController - CVerificationController - CController - CHomeController - NMiddleware - CAuthenticate - CCheckForMaintenanceMode - CEncryptCookies - CRedirectIfAuthenticated - CTrimStrings - CTrustProxies - CVerifyCsrfToken - CKernel - NProviders - CAppServiceProvider - CAuthServiceProvider - CEventServiceProvider - CRouteServiceProvider - CViewServiceProvider - NSupport - NAuthentication - CAuthentication - CUserProvider - NModule - CModuleInstanceFactory - NPermissions - CModulePermission - COverridePermissionTester + CModuleEventController + CModuleInstanceCompletionConditionController + CModuleInstanceEventController + CModuleInstancePermissionController + CModuleInstanceServiceController + CModuleInstanceSettingController + CModuleModuleInstanceController + CServiceConnectionController + CServiceConnectorController + NAuth + CConfirmPasswordController + CForgotPasswordController + CLoginController + CRegisterController + CResetPasswordController + CVerificationController + CController + CHomeController + NMiddleware + CAuthenticate + CCheckForMaintenanceMode + CEncryptCookies + CRedirectIfAuthenticated + CTrimStrings + CTrustProxies + CVerifyCsrfToken + CKernel + NProviders + CAppServiceProvider + CAuthServiceProvider + CEventServiceProvider + CRouteServiceProvider + CViewServiceProvider + NSupport + NAuthentication + CAuthentication + CUserProvider + NEvents + CEvent + CSaveEventInDatabase + NModule + CModuleInstanceFactory + NPermissions + CModulePermission + COverridePermissionTester
diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController-members.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController-members.html new file mode 100644 index 0000000..27e71d5 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController-members.html @@ -0,0 +1,81 @@ + + + + + + + +Bristol SU Playground: Member List + + + + + + + + + +
+
+ + + + + + +
+
Bristol SU Playground +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BristolSU\Playground\Http\Controllers\Api\ModuleEventController Member List
+
+
+ +

This is the complete list of members for BristolSU\Playground\Http\Controllers\Api\ModuleEventController, including all inherited members.

+ + +
index(Module $module, EventRepository $eventRepository)BristolSU\Playground\Http\Controllers\Api\ModuleEventController
+ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController.html new file mode 100644 index 0000000..d5678b9 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController.html @@ -0,0 +1,139 @@ + + + + + + + +Bristol SU Playground: BristolSU\Playground\Http\Controllers\Api\ModuleEventController Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Bristol SU Playground +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
BristolSU\Playground\Http\Controllers\Api\ModuleEventController Class Reference
+
+
+
+Inheritance diagram for BristolSU\Playground\Http\Controllers\Api\ModuleEventController:
+
+
Inheritance graph
+ + + +
[legend]
+
+Collaboration diagram for BristolSU\Playground\Http\Controllers\Api\ModuleEventController:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + +

+Public Member Functions

 index (Module $module, EventRepository $eventRepository)
 
+

Detailed Description

+
+

Definition at line 9 of file ModuleEventController.php.

+

Member Function Documentation

+ +

◆ index()

+ +
+
+ + + + + + + + + + + + + + + + + + +
BristolSU\Playground\Http\Controllers\Api\ModuleEventController::index (Module $module,
EventRepository $eventRepository 
)
+
+ +

Definition at line 12 of file ModuleEventController.php.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.map b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.map new file mode 100644 index 0000000..242b970 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.md5 b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.md5 new file mode 100644 index 0000000..4bcc006 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.md5 @@ -0,0 +1 @@ +8093087fc6cc18892047d79adae8d662 \ No newline at end of file diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.png b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.png new file mode 100644 index 0000000..cde8dbb Binary files /dev/null and b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__coll__graph.png differ diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.map b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.map new file mode 100644 index 0000000..242b970 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.md5 b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.md5 new file mode 100644 index 0000000..080137e --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.md5 @@ -0,0 +1 @@ +0f32128d42d608b00f4d46966acc3e54 \ No newline at end of file diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.png b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.png new file mode 100644 index 0000000..cde8dbb Binary files /dev/null and b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleEventController__inherit__graph.png differ diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController-members.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController-members.html new file mode 100644 index 0000000..ed231f8 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController-members.html @@ -0,0 +1,82 @@ + + + + + + + +Bristol SU Playground: Member List + + + + + + + + + +
+
+ + + + + + +
+
Bristol SU Playground +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController Member List
+
+
+ +

This is the complete list of members for BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController, including all inherited members.

+ + + +
store(ModuleInstance $moduleInstance, Request $request, CompletionConditionInstanceRepository $conditionInstanceRepository)BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController
test(ModuleInstance $moduleInstance, CompletionConditionTester $tester, ActivityInstanceResolver $activityInstanceResolver)BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController
+ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController.html new file mode 100644 index 0000000..83fbd4b --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController.html @@ -0,0 +1,184 @@ + + + + + + + +Bristol SU Playground: BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Bristol SU Playground +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController Class Reference
+
+
+
+Inheritance diagram for BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController:
+
+
Inheritance graph
+ + + +
[legend]
+
+Collaboration diagram for BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + + + +

+Public Member Functions

 store (ModuleInstance $moduleInstance, Request $request, CompletionConditionInstanceRepository $conditionInstanceRepository)
 
 test (ModuleInstance $moduleInstance, CompletionConditionTester $tester, ActivityInstanceResolver $activityInstanceResolver)
 
+

Detailed Description

+

Handle completion conditions

+ +

Definition at line 15 of file ModuleInstanceCompletionConditionController.php.

+

Member Function Documentation

+ +

◆ store()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController::store (ModuleInstance $moduleInstance,
Request $request,
CompletionConditionInstanceRepository $conditionInstanceRepository 
)
+
+ +

Definition at line 18 of file ModuleInstanceCompletionConditionController.php.

+ +
+
+ +

◆ test()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceCompletionConditionController::test (ModuleInstance $moduleInstance,
CompletionConditionTester $tester,
ActivityInstanceResolver $activityInstanceResolver 
)
+
+ +

Definition at line 31 of file ModuleInstanceCompletionConditionController.php.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.map b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.map new file mode 100644 index 0000000..d69f2ce --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.md5 b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.md5 new file mode 100644 index 0000000..f00963c --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.md5 @@ -0,0 +1 @@ +b3f55b61154a1bb62b725872eafbf43d \ No newline at end of file diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.png b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.png new file mode 100644 index 0000000..cca3594 Binary files /dev/null and b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__coll__graph.png differ diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.map b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.map new file mode 100644 index 0000000..d69f2ce --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.md5 b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.md5 new file mode 100644 index 0000000..6c389a8 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.md5 @@ -0,0 +1 @@ +52b1dafb88467cf0d0a8c8497f4e8203 \ No newline at end of file diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.png b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.png new file mode 100644 index 0000000..cca3594 Binary files /dev/null and b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceCompletionConditionController__inherit__graph.png differ diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController-members.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController-members.html new file mode 100644 index 0000000..383fa68 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController-members.html @@ -0,0 +1,81 @@ + + + + + + + +Bristol SU Playground: Member List + + + + + + + + + +
+
+ + + + + + +
+
Bristol SU Playground +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController Member List
+
+
+ +

This is the complete list of members for BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController, including all inherited members.

+ + +
index(ModuleInstance $moduleInstance)BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController
+ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController.html new file mode 100644 index 0000000..cc964fc --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController.html @@ -0,0 +1,129 @@ + + + + + + + +Bristol SU Playground: BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController Class Reference + + + + + + + + + +
+
+ + + + + + +
+
Bristol SU Playground +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController Class Reference
+
+
+
+Inheritance diagram for BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController:
+
+
Inheritance graph
+ + + +
[legend]
+
+Collaboration diagram for BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController:
+
+
Collaboration graph
+ + + +
[legend]
+ + + + +

+Public Member Functions

 index (ModuleInstance $moduleInstance)
 
+

Detailed Description

+
+

Definition at line 9 of file ModuleInstanceEventController.php.

+

Member Function Documentation

+ +

◆ index()

+ +
+
+ + + + + + + + +
BristolSU\Playground\Http\Controllers\Api\ModuleInstanceEventController::index (ModuleInstance $moduleInstance)
+
+ +

Definition at line 12 of file ModuleInstanceEventController.php.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.map b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.map new file mode 100644 index 0000000..5eeabfd --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.md5 b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.md5 new file mode 100644 index 0000000..a91cde7 --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.md5 @@ -0,0 +1 @@ +0ee37c6e4a5c7eb57709fa348cd54c0f \ No newline at end of file diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.png b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.png new file mode 100644 index 0000000..1d47f1f Binary files /dev/null and b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__coll__graph.png differ diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.map b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.map new file mode 100644 index 0000000..5eeabfd --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.md5 b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.md5 new file mode 100644 index 0000000..678b8ea --- /dev/null +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.md5 @@ -0,0 +1 @@ +3ca5b796372dbfe53b920b16415d5e7e \ No newline at end of file diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.png b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.png new file mode 100644 index 0000000..1d47f1f Binary files /dev/null and b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Api_1_1ModuleInstanceEventController__inherit__graph.png differ diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1LoginController.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1LoginController.html index e9c65d8..6cdac01 100644 --- a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1LoginController.html +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1LoginController.html @@ -99,7 +99,7 @@

Detailed Description

-

Definition at line 8 of file LoginController.php.

+

Definition at line 12 of file LoginController.php.

Constructor & Destructor Documentation

◆ __construct()

@@ -118,7 +118,7 @@

Returns
void
-

Definition at line 35 of file LoginController.php.

+

Definition at line 39 of file LoginController.php.

@@ -143,7 +143,7 @@

-

Definition at line 28 of file LoginController.php.

+

Definition at line 32 of file LoginController.php.

diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1RegisterController.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1RegisterController.html index c040307..ffd265d 100644 --- a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1RegisterController.html +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1RegisterController.html @@ -107,7 +107,7 @@

Detailed Description

-

Definition at line 14 of file RegisterController.php.

+

Definition at line 13 of file RegisterController.php.

Constructor & Destructor Documentation

◆ __construct()

@@ -126,7 +126,7 @@

Returns
void
-

Definition at line 41 of file RegisterController.php.

+

Definition at line 40 of file RegisterController.php.

@@ -163,7 +163,7 @@

Returns
-

Definition at line 68 of file RegisterController.php.

+

Definition at line 67 of file RegisterController.php.

@@ -199,7 +199,7 @@

Returns
-

Definition at line 52 of file RegisterController.php.

+

Definition at line 51 of file RegisterController.php.

@@ -224,7 +224,7 @@

-

Definition at line 34 of file RegisterController.php.

+

Definition at line 33 of file RegisterController.php.

diff --git a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1ResetPasswordController-members.html b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1ResetPasswordController-members.html index 28c8e96..77caf72 100644 --- a/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1ResetPasswordController-members.html +++ b/docs/classBristolSU_1_1Playground_1_1Http_1_1Controllers_1_1Auth_1_1ResetPasswordController-members.html @@ -70,6 +70,7 @@

This is the complete list of members for BristolSU\Playground\Http\Controllers\Auth\ResetPasswordController, including all inherited members.

+
$redirectToBristolSU\Playground\Http\Controllers\Auth\ResetPasswordControllerprotected
rules()BristolSU\Playground\Http\Controllers\Auth\ResetPasswordControllerprotected