window).Lang || {}, // TODO: Make an ES6 module
7 | cookie: new Cookie(),
8 | spinner: new Spinner(),
9 | post: new Post()
10 | };
11 |
--------------------------------------------------------------------------------
/app/Moderation/ArrayModerationInterface.php:
--------------------------------------------------------------------------------
1 |
7 | {{ trans('account.notifications') }}
8 |
9 | {% endblock %}
--------------------------------------------------------------------------------
/resources/views/admin/partials/delete_button.twig:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/resources/assets/sass/admin.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * MyBB 2 Admin Control Panel Theme - https://mybb.com - @mybb - MIT license
3 | */
4 |
5 | @import "utils/module";
6 | @import "base/module";
7 | @import "vendor/module";
8 | @import "components/admin/module";
9 | @import "layout/admin/module";
10 | @import "pages/admin/module";
11 | @import "themes/module";
12 |
--------------------------------------------------------------------------------
/app/Registry/RegistryInterface.php:
--------------------------------------------------------------------------------
1 | 'Post',
11 | 'type.post.plural' => 'Posts',
12 | 'type.topic' => 'Topic',
13 | 'type.topic.plural' => 'Topics',
14 | ];
15 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Admin/AdminController.php:
--------------------------------------------------------------------------------
1 |
2 | {% for option in setting.options|split('|') %}
3 |
4 | {{ trans(packageName ~ '::settings.' ~ setting.name ~ '.__option.' ~ option) }}
5 |
6 | {% endfor %}
7 |
8 |
--------------------------------------------------------------------------------
/resources/views/partials/form/field_input.twig:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/app/Http/Middleware/EncryptCookies.php:
--------------------------------------------------------------------------------
1 |
2 | {% for option in setting.options|split('|') %}
3 |
4 | {{ trans(packageName ~ '::settings.' ~ setting.name ~ '.__option.' ~ option) }}
5 |
6 | {% endfor %}
7 |
8 |
--------------------------------------------------------------------------------
/public/.htaccess:
--------------------------------------------------------------------------------
1 |
2 |
3 | Options -MultiViews
4 |
5 |
6 | RewriteEngine On
7 |
8 | # Redirect Trailing Slashes...
9 | RewriteRule ^(.*)/$ /$1 [L,R=301]
10 |
11 | # Handle Front Controller...
12 | RewriteCond %{REQUEST_FILENAME} !-d
13 | RewriteCond %{REQUEST_FILENAME} !-f
14 | RewriteRule ^ index.php [L]
15 |
16 |
--------------------------------------------------------------------------------
/bootstrap/helpers.php:
--------------------------------------------------------------------------------
1 | 0 %}
2 |
3 | {% endif %}
4 | {% if includeAvatar %}
5 | {% endif %}
6 | {% if useStyledName %}
7 | {{ user.styled_name|raw }}{% else %}
8 | {{ user.name }}{% endif %}
9 | {% if user.id > 0 %}
10 | {% endif %}
11 |
--------------------------------------------------------------------------------
/resources/assets/sass/components/_tables.scss:
--------------------------------------------------------------------------------
1 | .table {
2 | width: 100%;
3 |
4 | &.table--bordered {
5 | border-radius: 5px;
6 | border-collapse: separate;
7 |
8 | td {
9 | border-bottom: 1px solid $border-1;
10 | }
11 | }
12 |
13 | td, th {
14 | padding: 10px;
15 | }
16 |
17 | thead {
18 | background: $primary-color;
19 | color: $invert-font-color;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/resources/views/partials/moderation/moderation_button.twig:
--------------------------------------------------------------------------------
1 | {{ form_open({'route': ['moderate'], 'method': 'post', 'style': 'display: inline-block;'}) }}
2 | {{ form_hidden('moderation_name', moderation.key) }}
3 | {{ form_hidden('moderation_content', content_name) }}
4 | {{ form_hidden('moderation_ids[]', content_id) }}
5 | {{ form_button(moderation.name|capitalize, {'type': 'submit', 'class': 'button icon '~moderation.icon}) }}
6 | {{ form_close() }}
7 |
--------------------------------------------------------------------------------
/resources/views/errors/403.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.base" %}
2 | {% block title %}
3 | {{ trans('errors.no_permission') }}
4 | {% endblock %}
5 | {% block contents %}
6 |
7 |
10 |
11 | {{ trans('errors.no_permission_desc') }}
12 |
13 |
14 | {% endblock %}
--------------------------------------------------------------------------------
/resources/views/topic/quotebar.twig:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/resources/assets/sass/vendor/_module.scss:
--------------------------------------------------------------------------------
1 | @import "../../../../node_modules/normalize-scss/sass/_normalize";
2 | @import "../../../../node_modules/font-awesome/scss/font-awesome";
3 | @import "../../../../node_modules/@claviska/jquery-dropdown/jquery.dropdown.sass";
4 | @import "../../../../node_modules/datetimepicker/src/DateTimePicker";
5 |
6 | @import "jcrop";
7 | @import "passwords";
8 | @import "spinner";
9 | @import "stepper";
10 | @import "tooltips";
11 | @import "dropit";
12 |
--------------------------------------------------------------------------------
/app/Renderers/Post/Quote/QuoteInterface.php:
--------------------------------------------------------------------------------
1 | 'Ye Port Records',
5 | 'account' => 'Account',
6 | 'dashboard' => 'Ship\'s Wheel',
7 | 'profile' => 'Bunk',
8 | 'notifications' => 'Parrotings',
9 | 'following' => 'Followin\'',
10 | 'buddies' => 'Mateys',
11 | 'preferences' => 'Preferences',
12 | 'privacy' => 'Privacy',
13 | 'drafts' => 'Letters & Seals',
14 | 'messages' => 'Parrots',
15 |
16 | ];
17 |
--------------------------------------------------------------------------------
/resources/views/admin/settings/types/radio.twig:
--------------------------------------------------------------------------------
1 | {% for option in setting.options|split('|') %}
2 |
9 |
10 | {{ trans(packageName ~ '::settings.' ~ setting.name ~ '.__option.' ~ option) }}
11 |
12 |
13 | {% endfor %}
14 |
--------------------------------------------------------------------------------
/resources/lang/pr/forum.php:
--------------------------------------------------------------------------------
1 | 'All Ledgers',
5 | 'notfound' => 'No Ledgers On T\'horizon!!',
6 | 'childforums' => 'Sub Ledgers',
7 | 'topics' => 'Tales',
8 | 'markread' => 'Mark Read',
9 | 'follow' => 'Follow',
10 | 'posttopic' => 'Post Topic',
11 | 'topictitle' => 'Scrawlin\' Name',
12 | 'startdate' => 'Date of Departure',
13 | 'replies' => 'Scrawlin\'s',
14 | 'latestpost' => 'Latest Reply',
15 |
16 | ];
17 |
--------------------------------------------------------------------------------
/tests/src/ClassAssertionsTrait.php:
--------------------------------------------------------------------------------
1 | 'Post liked',
15 | 'like_removed' => 'Post un-liked',
16 | 'likes_for_post' => 'Likes for post #:post_id in topic :topic_title',
17 | 'show_topic' => 'View Topic',
18 | ];
19 |
--------------------------------------------------------------------------------
/resources/lang/en/likes.php:
--------------------------------------------------------------------------------
1 | 'You',
15 | 'sep_comma' => ',',
16 | 'sep_and' => ' and ',
17 | 'others' => 'another|:numOthers others',
18 | 'like_this' => ' like this.',
19 | ];
20 |
--------------------------------------------------------------------------------
/resources/views/admin/forums/add.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %} {{ trans('admin::forums.add_forum') }} {% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::forums.add_forum') }}
6 |
7 |
8 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/resources/views/admin/users/add.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{{ trans('admin::users.add_title') }}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::users.add_title') }}
6 |
7 |
8 | {{ form_open({'route': ['admin.users.add'], 'method': 'post'}) }}
9 | {% include "admin.partials.users.user_form" %}
10 | {{ form_close() }}
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/app/Database/Models/ModerationLogSubject.php:
--------------------------------------------------------------------------------
1 |
2 | {{ forum.title }} | Level: {{ level }}
3 |
4 | {{ trans('admin::general.edit') }}
5 | {{ admin_delete_button('admin.forums.delete', forum.id) }}
6 |
7 |
8 | {{ forum.description }}
9 |
10 |
11 |
--------------------------------------------------------------------------------
/resources/views/admin/warnings/warning_types/add.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::warnings.add_warning_type') }}
6 |
7 |
8 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/tests/src/FunctionalTestCase.php:
--------------------------------------------------------------------------------
1 | make('Illuminate\Contracts\Console\Kernel')->bootstrap();
19 |
20 | return $app;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/resources/views/admin/users/profile_fields/add.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::profile_fields.add_field') }}
6 |
7 |
8 | {{ form_open({'route': ['admin.users.profile_fields.add'], 'method': 'post'}) }}
9 | {% include "admin.partials.users.profile_field_form" %}
10 | {{ form_close() }}
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/resources/views/vendor/notifications/email-plain.blade.php:
--------------------------------------------------------------------------------
1 |
5 | {{ trans('admin::tasks.create_task') }}
6 |
7 |
8 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/app/Captcha/CaptchaInterface.php:
--------------------------------------------------------------------------------
1 |
5 | {{ trans('admin::tasks.edit') }}
6 |
7 |
8 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/resources/views/admin/users/edit.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{{ trans('admin::users.edit_title') }}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::users.edit_title') }}
6 |
7 |
8 | {{ form_open({'route': ['admin.users.edit', user.id], 'method': 'post'}) }}
9 | {% include "admin.partials.users.user_form" with [user] %}
10 | {{ form_close() }}
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: http://EditorConfig.org
2 |
3 | # top-most EditorConfig file
4 | root = true
5 |
6 | # Unix-style newlines with a newline ending every file
7 | [*]
8 | end_of_line = lf
9 | insert_final_newline = true
10 | charset = utf-8
11 | trim_trailing_whitespace = true
12 |
13 | [*.{js,css,sass,scss}]
14 | indent_style = tab
15 | indent_size = 2
16 |
17 | [*.php]
18 | indent_style = space
19 | indent_size = 4
20 |
21 | # Matches the exact files either package.json or .travis.yml
22 | [{package.json,.travis.yml}]
23 | indent_style = space
24 | indent_size = 4
25 |
--------------------------------------------------------------------------------
/resources/views/admin/warnings/warning_types/edit.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::warnings.edit_warning_type') }}
6 |
7 |
8 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/resources/views/admin/forums/edit.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %} {{ trans('admin::forums.edit_forum') }} {% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::forums.edit_forum') }}
6 |
7 |
8 |
11 |
12 | {% endblock %}
13 |
--------------------------------------------------------------------------------
/app/Exceptions/Handler.php:
--------------------------------------------------------------------------------
1 |
5 | {{ trans('admin::forums.management') }}
6 |
7 |
8 |
9 | {{ list_all_forums(forums) }}
10 |
11 | {% endblock %}
12 |
--------------------------------------------------------------------------------
/resources/views/partials/breadcrumbs.twig:
--------------------------------------------------------------------------------
1 | {% if breadcrumbs %}
2 |
3 | {% for breadcrumb in breadcrumbs %}
4 | {% if breadcrumb.last == false %}
5 |
{{ breadcrumb.title }}
6 | {% else %}
7 | {# Hiding last breadcrumb item (duplicates page title) -- uncomment to show #}
8 | {#
{{ breadcrumb.title }} #}
9 | {% endif %}
10 | {% endfor %}
11 |
12 | {% endif %}
--------------------------------------------------------------------------------
/resources/views/admin/partials/headerinclude.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {% if trans('general.direction') == 'rtl' %}
7 |
8 | {% else %}
9 |
10 | {% endif %}
11 |
--------------------------------------------------------------------------------
/app/Database/Models/Permission.php:
--------------------------------------------------------------------------------
1 | belongsToMany(\MyBB\Core\Database\Models\Role::class);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/app/Services/ParserCallbacks.php:
--------------------------------------------------------------------------------
1 | topic->slug, $post->topic->id, $post->id]);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/Warnings/WarnableContentInterface.php:
--------------------------------------------------------------------------------
1 | '« Previous',
17 | 'next' => 'Next »',
18 |
19 | ];
20 |
--------------------------------------------------------------------------------
/app/Providers/EventServiceProvider.php:
--------------------------------------------------------------------------------
1 | [
22 | 'EventListener',
23 | ],
24 | ];
25 | }
26 |
--------------------------------------------------------------------------------
/server.php:
--------------------------------------------------------------------------------
1 |
7 | */
8 |
9 | $uri = urldecode(
10 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
11 | );
12 |
13 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the
14 | // built-in PHP web server. This provides a convenient way to test a Laravel
15 | // application without having installed a "real" web server software here.
16 | if ($uri !== '/' and file_exists(__DIR__.'/public'.$uri))
17 | {
18 | return false;
19 | }
20 |
21 | require_once __DIR__ . '/public/index.php';
22 |
--------------------------------------------------------------------------------
/resources/lang/pr/member.php:
--------------------------------------------------------------------------------
1 | 'Set Sail',
6 | 'logout' => 'Abandon Ship',
7 | 'signup' => 'Join Tha\' Crew',
8 | 'UsernameOrEmail' => 'Pirate Name/Parrot Address',
9 | 'password' => 'Secret Code',
10 | 'forgotpassword' => 'Be forgettin\' yer code?',
11 | 'remember_me' => "Remember me?",
12 | 'invalidCredentials' => 'Yer pirate name and secret code be not matchin!',
13 | 'username' => 'Pirate Name',
14 | 'email' => 'Parrot Address',
15 | 'password_confirm' => 'Type yer code agin.',
16 |
17 | ];
18 |
--------------------------------------------------------------------------------
/resources/views/warnings/acknowledge.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.base" %}
2 | {% block title %}
3 | {{ trans('warnings.warn_user') }}
4 | {% endblock %}
5 | {% block contents %}
6 |
7 | {{ trans('warnings.ack.information') }}
8 | {% include 'warnings.warn' with {'warn': warn} %}
9 |
10 |
11 |
18 | {% endblock %}
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MyBB 2 [](https://travis-ci.org/mybb/mybb2)
2 |
3 | This repository holds the source files for MyBB 2, the upcoming major version of MyBB. MyBB is the free and open source, intuitive, extensible, and incredibly powerful forum software you've been looking for.
4 |
5 | MyBB 2 is not yet stable and should **not** be used on live boards in any situation. Support is not provided for MyBB 2 until it is officially released as a stable product and any issues regarding basic support will be closed immediately. If you are not an experienced developer or administrator, this repository is probably not aimed at you.
6 |
--------------------------------------------------------------------------------
/app/Content/ContentInterface.php:
--------------------------------------------------------------------------------
1 | hasPages())
2 |
17 | @endif
18 |
--------------------------------------------------------------------------------
/resources/assets/sass/vendor/_passwords.scss:
--------------------------------------------------------------------------------
1 | /* hide/show password */
2 | ::-ms-reveal,
3 | ::-ms-clear {
4 | display: none !important;
5 | }
6 |
7 | .hideShowPassword-toggle {
8 | background: transparent;
9 | border: 0;
10 | border-radius: 2px;
11 | color: $alt-font-color-2;
12 | cursor: pointer;
13 | font-size: 0.75em;
14 | font-weight: bold;
15 | margin-#{$right}: 2px;
16 | padding: 3px 8px;
17 | text-transform: uppercase;
18 | -moz-appearance: none;
19 | -webkit-appearance: none;
20 |
21 | &:hover,
22 | &:focus {
23 | background-color: $background-3;
24 | color: $alt-font-color-1;
25 | outline: transparent;
26 | }
27 | }
--------------------------------------------------------------------------------
/tests/unit/Tasking/AbstractTaskTest.php:
--------------------------------------------------------------------------------
1 | shouldReceive('fire')
15 | ->with($taskModel)
16 | ->andReturnNull();
17 | }
18 |
19 | public function testIsCommand()
20 | {
21 | $task = Mockery::mock(AbstractTask::class);
22 | static::assertInstanceOf(\Illuminate\Console\Command::class, $task);
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/Permissions/Traits/PermissionableTrait.php:
--------------------------------------------------------------------------------
1 | getKey();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/resources/views/account/following.twig:
--------------------------------------------------------------------------------
1 | {% extends "account.base" %}
2 | {% block inner_title %}
3 | {{ trans('account.following') }}
4 | {% endblock %}
5 | {% block inner_contents %}
6 |
9 |
10 | Topics
11 | Forums
12 | Users
13 |
14 | {% endblock %}
--------------------------------------------------------------------------------
/app/Database/Repositories/RoleRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | 'Yar, an error be encountered when creatin\' that thar scrawlin\'.',
5 | 'error_creating_topic' => 'Yar, an error be encountered when creatin\' that thar tale.',
6 | 'error_deleting_post' => 'Yar, an error be encountered when erasin\' that thar scrawlin\'.',
7 | 'forum_not_found' => 'Me spyglass couldn\'t find that ledger.',
8 | 'post_not_found' => 'Me spyglass couldn\'t find that scrawlin\'',
9 | 'no_permission' => 'Walk the plank!',
10 | 'no_permission_desc' => 'Ye don\'t have keys to this part of the ship, scallywag.'
11 | 'topic_not_found' => 'Me spyglass couldn\'t find that tale.'
12 | ];
13 |
--------------------------------------------------------------------------------
/resources/views/header/welcomeblock_guest.twig:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/app/Database/Repositories/ModerationLogRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | 'required|string|max:255',
30 | ];
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/resources/views/warnings/show.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.base" %}
2 | {% block title %}
3 | {{ trans('warnings.warn_user') }}
4 | {% endblock %}
5 | {% block contents %}
6 |
7 | {% include 'warnings.warn' with {'warn': warm} %}
8 |
9 |
10 | {% if not warn.revoked_at and not warn.expired %}
11 |
17 | {% endif %}
18 |
19 | {% endblock %}
20 |
--------------------------------------------------------------------------------
/resources/views/partials/messages.twig:
--------------------------------------------------------------------------------
1 | {% if errors.any %}
2 |
3 |
{{ trans('errors.inline_error') }}
4 |
5 | {% for error in errors.all %}
6 | {{ error }}
7 | {% endfor %}
8 |
9 |
10 | {% endif %}
11 |
12 | {% if session_has('success') %}
13 |
14 |
{{ session_get('success') }}
15 |
16 | {% endif %}
17 |
18 | {% if session_has('error') %}
19 |
20 |
{{ session_get('error') }}
21 |
22 | {% endif %}
23 |
--------------------------------------------------------------------------------
/tests/unit/Tasking/ScheduleManagerTest.php:
--------------------------------------------------------------------------------
1 | '« Previous',
23 | 'next' => 'Next »',
24 |
25 | ];
26 |
--------------------------------------------------------------------------------
/app/Http/Requests/Warnings/AckWithWarnRequest.php:
--------------------------------------------------------------------------------
1 | 'required|integer|exists:warnings,id',
24 | ];
25 | }
26 |
27 | /**
28 | * @return bool
29 | */
30 | public function authorize() : bool
31 | {
32 | return true;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/Tasking/AbstractTask.php:
--------------------------------------------------------------------------------
1 | commands($this->tasks);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/resources/lang/pr/topic.php:
--------------------------------------------------------------------------------
1 | 'No Tales Spotted!',
5 | 'topics' => 'Tales',
6 | 'replies' => 'Replies',
7 | 'posts' => 'Scrawlin\'s',
8 | 'numreplies' => '{0} No Replies|{1} One Reply|[2,Inf] :count Replies',
9 | 'numviews' => '{0} No Views|{1} One View|[2,Inf] :count Views',
10 | 'numposts' => '{0} No Scrawlin\'s|{1} One Scrawlin|[2,Inf] :count Scrawlin\'s',
11 | 'latest' => 'Latest',
12 | 'create.title' => 'Create New Tale',
13 | 'create.description' => "Create a new tale in yonder ledger '{0}'.",
14 | 'edit' => 'Amend',
15 | 'editpost' => 'Amend Scrawlin\'',
16 | 'delete' => 'Scuttle',
17 | ];
18 |
--------------------------------------------------------------------------------
/app/Database/Models/Task.php:
--------------------------------------------------------------------------------
1 | hasMany(TaskLog::class);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/database/migrations/2016_11_04_190327_rename_search_id_to_token.php:
--------------------------------------------------------------------------------
1 | renameColumn('id', 'token');
17 | });
18 | }
19 |
20 | /**
21 | * Reverse the migrations.
22 | *
23 | * @return void
24 | */
25 | public function down()
26 | {
27 | Schema::table('searchlog', function (Blueprint $table) {
28 | $table->renameColumn('token', 'id');
29 | });
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Permissions/Interfaces/PermissionInterface.php:
--------------------------------------------------------------------------------
1 | boolean('sticky')->default(0)->index();
17 | });
18 | }
19 |
20 | /**
21 | * Reverse the migrations.
22 | *
23 | * @return void
24 | */
25 | public function down()
26 | {
27 | Schema::table('topics', function (Blueprint $table) {
28 | $table->dropColumn('sticky');
29 | });
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Database/Models/WarningType.php:
--------------------------------------------------------------------------------
1 | 'required|string|max:255',
22 | 'description' => 'required|string|max:255',
23 | ];
24 | }
25 |
26 | /**
27 | * @return bool
28 | */
29 | public function authorize() : bool
30 | {
31 | return true;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Repository/RepositoryServiceProvider.php:
--------------------------------------------------------------------------------
1 | app->singleton('MyBB\Core\Repository\RepositoryRegistry', function ($app) {
17 | return new RepositoryRegistry([
18 | 'post' => 'MyBB\Core\Database\Repositories\PostRepositoryInterface',
19 | 'topic' => 'MyBB\Core\Database\Repositories\TopicRepositoryInterface',
20 | 'forum' => 'MyBB\Core\Database\Repositories\ForumRepositoryInterface',
21 | ]);
22 | });
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/database/seeds/ContentClassTableSeeder.php:
--------------------------------------------------------------------------------
1 | delete();
17 |
18 | $classes = [
19 | [
20 | 'content' => 'user',
21 | 'class' => 'MyBB\\Core\\Database\\Models\\User',
22 | ],
23 | [
24 | 'content' => 'forum',
25 | 'class' => 'MyBB\\Core\\Database\\Models\\Forum',
26 | ],
27 | ];
28 |
29 | DB::table('content_class')->insert($classes);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/resources/views/vendor/pagination/simple-bootstrap-4.blade.php:
--------------------------------------------------------------------------------
1 | @if ($paginator->hasPages())
2 |
17 | @endif
18 |
--------------------------------------------------------------------------------
/app/Http/Requests/Warnings/RevokeWarnRequest.php:
--------------------------------------------------------------------------------
1 | 'required|string',
24 | 'id' => 'required|integer|exists:warnings,id',
25 | ];
26 | }
27 |
28 | /**
29 | * @return bool
30 | */
31 | public function authorize() : bool
32 | {
33 | return true;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/resources/views/admin/settings/types/switch.twig:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ trans('admin::settings.yes') }}
5 |
6 |
7 |
8 | {{ trans('admin::settings.no') }}
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/Database/Repositories/SearchRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | 'All Forums',
11 | 'notfound' => 'No forums found',
12 | 'childforums' => 'Child Forums',
13 | 'topics' => 'Topics',
14 | 'markread' => 'Mark Read',
15 | 'follow' => 'Follow',
16 | 'posttopic' => 'Post Topic',
17 | 'topictitle' => 'Topic Title',
18 | 'startdate' => 'Start Date',
19 | 'replies' => 'Replies',
20 | 'latestpost' => 'Latest Post',
21 | 'author' => 'Author',
22 | 'sorttopics' => 'Sort Topics',
23 | 'closedtopic' => 'Closed Topic',
24 | 'stickytopic' => 'Sticky Topic',
25 | 'poll' => 'Topic Contains Poll',
26 | ];
27 |
--------------------------------------------------------------------------------
/app/Exceptions/CaptchaInvalidClassException.php:
--------------------------------------------------------------------------------
1 | message, compact('class'));
28 |
29 | parent::__construct($message, $code, $previous);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Exceptions/PollClosedException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/tests/unit/Repository/RepositoryRegistryTest.php:
--------------------------------------------------------------------------------
1 | 'Foo\Bar',
11 | ]);
12 |
13 | static::assertInstanceOf('MyBB\Core\Repository\RepositoryRegistry', $registry);
14 | static::assertInstanceOf('MyBB\Core\Registry\RegistryInterface', $registry);
15 | }
16 |
17 | public function testCanAddRepository()
18 | {
19 | $registry = new RepositoryRegistry();
20 | $registry->addRepository('foo', 'Foo\Bar');
21 |
22 | static::assertEquals('Foo\Bar', $registry->get('foo'));
23 | static::assertArrayHasKey('foo', $registry->getAll());
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/Exceptions/PollNoUndoException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/PermissionInvalidContentException.php:
--------------------------------------------------------------------------------
1 | message, compact('class'));
28 |
29 | parent::__construct($message, $code, $previous);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Exceptions/PollAlreadyVotedException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/PollNoGuestUndoException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/TaskFailedException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Providers/ConfigServiceProvider.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Auth/ResetPasswordController.php:
--------------------------------------------------------------------------------
1 | middleware('guest');
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/Exceptions/WarningsContentInvalidClassException.php:
--------------------------------------------------------------------------------
1 | message, compact('class'));
28 |
29 | parent::__construct($message, $code, $previous);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/database/migrations/2017_02_15_193903_add_options_to_settings_table.php:
--------------------------------------------------------------------------------
1 | string('options')->nullable()->default(null);
18 | });
19 | }
20 |
21 | /**
22 | * Reverse the migrations.
23 | *
24 | * @return void
25 | */
26 | public function down()
27 | {
28 | Schema::table('settings', function (Blueprint $table) {
29 | $table->dropColumn('options');
30 | });
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/resources/assets/sass/vendor/_dropit.scss:
--------------------------------------------------------------------------------
1 | /*
2 | * Dropit v1.1.0
3 | * http://dev7studios.com/dropit
4 | *
5 | * Copyright 2012, Dev7studios
6 | * Free to use and abuse under the MIT license.
7 | * http://www.opensource.org/licenses/mit-license.php
8 | */
9 |
10 | /* These styles assume you are using ul and li */
11 | .dropit {
12 | list-style: none;
13 | padding: 0;
14 | margin: 0;
15 |
16 | .dropit-trigger {
17 | position: relative;
18 | }
19 |
20 | .dropit-submenu {
21 | position: absolute;
22 | top: 100%;
23 | left: 0; /* dropdown left or right */
24 | z-index: 1000;
25 | display: none;
26 | min-width: 150px;
27 | list-style: none;
28 | padding: 0;
29 | margin: 0;
30 | }
31 |
32 | .dropit-open .dropit-submenu {
33 | display: block;
34 | }
35 | }
--------------------------------------------------------------------------------
/resources/views/admin/header.twig:
--------------------------------------------------------------------------------
1 |
22 |
--------------------------------------------------------------------------------
/resources/views/search/result_posts.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.base" %}
2 | {% block title %}
3 | {{ trans('search.results') }}
4 | {% endblock %}
5 | {% block contents %}
6 |
7 |
10 | {# TODO: we need some mockup for it... #}
11 |
12 | {{ results.render|raw }}
13 | {% for post in results %}
14 |
15 | {{ str_limit(post.content_parsed|striptags, 200) }}
16 |
17 | {% endfor %}
18 | {{ results.render|raw }}
19 |
20 |
21 | {% endblock %}
--------------------------------------------------------------------------------
/app/Exceptions/PermissionImplementInterfaceException.php:
--------------------------------------------------------------------------------
1 | message, compact('class'));
28 |
29 | parent::__construct($message, $code, $previous);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Providers/BroadcastServiceProvider.php:
--------------------------------------------------------------------------------
1 | id === (int) $userId;
31 | });
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resources/views/warnings/warn.twig:
--------------------------------------------------------------------------------
1 | {% if warn.revoked_at %}
2 | Status: Revoked
3 | {% elseif warn.expired %}
4 | Status: Already expired
5 | {% elseif not warn.expires_at %}
6 | Expiration time: never
7 | {% else %}
8 | Expires at {{ format_date(warn.expires_at) }}
9 | {% endif %}
10 |
11 | Warn reason {{ warn.reason }}
12 |
13 | {% if warn.snapshot %}
14 | Inappropriate content {{ warn.formatSnapshot() }}
15 | {% endif %}
16 |
17 | IssuedBy {{ render_profile_link(warn.issued_by()) }}
18 | Created at {{ format_date(warn.created_at) }}
19 | Warn points +{{ warn.points }}
20 |
21 | {% if warn.revoked_at %}
22 | WARN REVOKED
23 | Revoked by: {{ render_profile_link(warn.revoked_by()) }}
24 | Revoked at: {{ format_date(warn.revoked_at) }}
25 | Revoke reason: {{ warn.revoke_reason }}
26 | {% endif %}
27 |
--------------------------------------------------------------------------------
/database/migrations/2015_03_16_220356_create_session_table.php:
--------------------------------------------------------------------------------
1 | string('id')->unique();
24 | $t->text('payload');
25 | $t->integer('last_activity');
26 | });
27 | }
28 |
29 | /**
30 | * Reverse the migrations.
31 | *
32 | * @return void
33 | */
34 | public function down()
35 | {
36 | Schema::drop('sessions');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Exceptions/DateInvalidObjectException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Http/Controllers/Admin/DashboardController.php:
--------------------------------------------------------------------------------
1 | breadcrumbs = $breadcrumbs;
26 | }
27 |
28 | public function index()
29 | {
30 | $this->breadcrumbs->setCurrentRoute('admin.dashboard');
31 |
32 | return view('admin.dashboard')->withActive("dashboard");
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/Http/Requests/Account/UpdatePasswordRequest.php:
--------------------------------------------------------------------------------
1 | 'required|min:6',
27 | 'password' => 'required',
28 | ];
29 | }
30 |
31 | /**
32 | * @return bool
33 | */
34 | public function authorize() : bool
35 | {
36 | return true;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/database/migrations/2017_03_08_160035_create_task_logs_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $table->unsignedInteger('task_id');
19 | $table->text('content');
20 | $table->timestamp('created_at');
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | *
27 | * @return void
28 | */
29 | public function down()
30 | {
31 | Schema::dropIfExists('task_logs');
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/ConversationCantSendToSelfException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Http/Requests/User/CreateRequest.php:
--------------------------------------------------------------------------------
1 | 'required|max:255|unique:users',
24 | 'email' => 'required|email|max:255|unique:users',
25 | 'password' => 'required|confirmed|min:6',
26 | ];
27 | }
28 |
29 | /**
30 | * @return bool
31 | */
32 | public function authorize() : bool
33 | {
34 | return true;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/resources/views/errors/503.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
33 |
34 |
35 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/Http/Requests/Account/UpdateAvatarRequest.php:
--------------------------------------------------------------------------------
1 | 'image',
28 | ];
29 | }
30 |
31 | /**
32 | * @return bool
33 | */
34 | public function authorize() : bool
35 | {
36 | return true;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Http/Requests/Account/UpdateEmailRequest.php:
--------------------------------------------------------------------------------
1 | 'required|email|max:255|unique:users',
27 | 'password' => 'required',
28 | ];
29 | }
30 |
31 | /**
32 | * @return bool
33 | */
34 | public function authorize() : bool
35 | {
36 | return true;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Http/Requests/Account/UpdateUsernameRequest.php:
--------------------------------------------------------------------------------
1 | 'required|max:255|unique:users',
27 | 'password' => 'required',
28 | ];
29 | }
30 |
31 | /**
32 | * @return bool
33 | */
34 | public function authorize() : bool
35 | {
36 | return true;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Http/Requests/ProfileField/SaveProfileFieldGroupRequest.php:
--------------------------------------------------------------------------------
1 | 'required|string|max:255',
30 | 'slug' => 'required|string|max:255|alpha_dash',
31 | 'description' => 'required|string|max:255',
32 | ];
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/config/settings.php:
--------------------------------------------------------------------------------
1 | 'database',
18 | /**
19 | * The name of the database table containing the settings.
20 | */
21 | 'settings_table' => 'settings',
22 | /**
23 | * The name of the database table containing the setting values.
24 | */
25 | 'setting_values_table' => 'setting_values',
26 | /**
27 | * Cache name for settings when caching core settings.
28 | */
29 | 'settings_cache_name' => 'mybb.core.settings',
30 | ];
31 |
--------------------------------------------------------------------------------
/app/Exceptions/ConversationAlreadyParticipantException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $code, $previous);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/TaskNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/PollNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/PostNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/UserNotBelongsToThisContentException.php:
--------------------------------------------------------------------------------
1 | message, compact('user'));
28 |
29 | parent::__construct($message, $previous, $code);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/app/Exceptions/UserNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Widgets/WidgetInterface.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/SettingNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/TopicNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resources/lang/en/confirmation.php:
--------------------------------------------------------------------------------
1 | 'Invalid token! Please make sure you copied the complete link',
12 | 'subject' => 'Confimation email for MyBB 2.0',
13 | 'message' => 'Please confirm your :type and visit the following link: :link',
14 |
15 | 'password_subject' => 'Password confimation email for MyBB 2.0',
16 | 'password_message' => 'Please confirm your password and visit the following link: :link',
17 |
18 | 'email_subject' => 'Email change at MyBB 2.0',
19 | 'email_message' => 'Your email has been changed to :email. You can confirm this change by visiting this link: :link
20 | If you haven\'t requested this change, you should contact the administrator and change your password.',
21 | ];
22 |
--------------------------------------------------------------------------------
/app/Exceptions/WarningNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/resources/views/moderation/logs.twig:
--------------------------------------------------------------------------------
1 | {% extends "moderation.base" %}
2 | {% block inner_contents %}
3 |
6 |
7 | {% if logs is not empty %}
8 |
9 |
10 |
11 | Description
12 | Time
13 | IP Address
14 |
15 |
16 |
17 | {% for log in logs %}
18 |
19 | {{ log.description | raw }}
20 | {{ log.created_at.diffForHumans }}
21 | {{ log.ip_address }}
22 |
23 | {% endfor %}
24 |
25 |
26 | {% endif %}
27 | {% endblock %}
28 |
--------------------------------------------------------------------------------
/resources/views/conversation/preview.twig:
--------------------------------------------------------------------------------
1 | {% if preview is not null %}
2 |
3 |
4 |
5 |
6 |
{{ render_profile_link(preview.author) }}
7 | {{ generate_time(preview.created_at) }}
8 |
9 |
10 |
11 | {{ preview.message_parsed|raw }} {# HTML is filtered by the parser, so show raw HTML. Only do this if you're 100% sure of your variables! #}
12 |
13 |
14 |
15 | {% endif %}
16 |
--------------------------------------------------------------------------------
/app/Exceptions/ConversationNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/app/Exceptions/WarningTypeNotFoundException.php:
--------------------------------------------------------------------------------
1 | message);
29 | }
30 |
31 | parent::__construct($message, $previous, $code);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/phpcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Configuration for MyBB 2.0
4 |
5 | app
6 | config
7 | database
8 | resources
9 | tests
10 |
11 | tests/report/
12 | */*.blade.php
13 |
14 |
15 |
16 |
17 | */database/*
18 | */tests/*
19 |
20 |
21 |
22 | */Presenters/*
23 |
24 |
25 |
26 | */database/*
27 | */resources/*
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/app/Console/Commands/stubs/task.stub:
--------------------------------------------------------------------------------
1 | 'required|integer',
22 | 'h' => 'required|integer',
23 | 'x' => 'required|integer',
24 | 'x2' => 'required|integer',
25 | 'y' => 'required|integer',
26 | 'y2' => 'required|integer',
27 | ];
28 | }
29 |
30 | /**
31 | * @return bool
32 | */
33 | public function authorize() : bool
34 | {
35 | return true;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/database/migrations/2015_04_17_113600_remove_unique_slug.php:
--------------------------------------------------------------------------------
1 | dropUnique('topics_slug_unique');
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::table('topics', function (Blueprint $table) {
35 | $table->unique('slug');
36 | });
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/resources/assets/sass/utils/_helpers.scss:
--------------------------------------------------------------------------------
1 | .icon {
2 | text-decoration: none;
3 |
4 | &:before {
5 | display: inline-block;
6 | font-family: FontAwesome;
7 | font-size: 1em;
8 | text-decoration: none;
9 | font-style: normal;
10 | font-weight: normal;
11 | margin-#{$right}: 8px;
12 | position: relative;
13 | -webkit-font-smoothing:antialiased;
14 | -moz-osx-font-smoothing:grayscale;
15 | }
16 |
17 | &.icon--fw:before {
18 | width: 1.28571429em;
19 | text-align: center;
20 | }
21 |
22 | &.icon--after {
23 | display: inline-block;
24 |
25 | &:before {
26 | float: $right;
27 | margin-#{$right}: 0px;
28 | margin-#{$left}: 8px;
29 | }
30 | }
31 | }
32 |
33 | .hidden {
34 | @include hidden;
35 | }
36 |
37 | .visually-hidden {
38 | @include visually-hidden;
39 | }
40 |
--------------------------------------------------------------------------------
/resources/views/admin/users/delete.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{{ trans('admin::users.delete_title') }}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::users.delete_title') }}
6 |
7 |
8 |
Are you sure you want to delete the user "{{ user.name }}"?
9 | {{ form_open({'route': ['admin.users.delete'], 'method': 'post'}) }}
10 |
11 |
{{ trans('admin::general.back') }}
12 |
{{ trans('admin::users.delete') }}
13 | {{ form_close() }}
14 |
15 | {% endblock %}
16 |
--------------------------------------------------------------------------------
/app/Presenters/Moderations/DeletePostPresenter.php:
--------------------------------------------------------------------------------
1 | [
18 | 'domain' => '',
19 | 'secret' => '',
20 | ],
21 | 'mandrill' => [
22 | 'secret' => '',
23 | ],
24 | 'ses' => [
25 | 'key' => '',
26 | 'secret' => '',
27 | 'region' => 'us-east-1',
28 | ],
29 | 'stripe' => [
30 | 'model' => 'User',
31 | 'secret' => '',
32 | ],
33 |
34 | ];
35 |
--------------------------------------------------------------------------------
/app/Presenters/Moderations/DeleteTopicPresenter.php:
--------------------------------------------------------------------------------
1 | true]),
32 | ];
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/database/migrations/2015_03_06_174600_add_last_page.php:
--------------------------------------------------------------------------------
1 | string('last_page')->nullable()->after('last_visit');
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::table('users', function (Blueprint $table) {
35 | $table->dropColumn('last_page');
36 | });
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Database/Models/Role.php:
--------------------------------------------------------------------------------
1 | belongsToMany(\MyBB\Core\Database\Models\User::class);
28 | }
29 |
30 | /**
31 | * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
32 | */
33 | public function permissions()
34 | {
35 | return $this->belongsToMany(\MyBB\Core\Database\Models\Permission::class);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/database/migrations/2015_03_29_145958_add_num_likes_to_posts_table.php:
--------------------------------------------------------------------------------
1 | unsignedInteger('num_likes')->default(0);
23 | });
24 | }
25 |
26 | /**
27 | * Reverse the migrations.
28 | *
29 | * @return void
30 | */
31 | public function down()
32 | {
33 | Schema::table('posts', function (Blueprint $table) {
34 | $table->dropColumn('num_likes');
35 | });
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/database/migrations/2015_02_12_025532_create_permission_role_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
24 | $table->integer('permission_id');
25 | $table->integer('role_id');
26 | });
27 | }
28 |
29 | /**
30 | * Reverse the migrations.
31 | *
32 | * @return void
33 | */
34 | public function down()
35 | {
36 | Schema::drop('permission_role');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/database/migrations/2015_02_26_133000_add_last_visit_to_users_table.php:
--------------------------------------------------------------------------------
1 | timestamp('last_visit')->nullable();
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::table('users', function (Blueprint $table) {
35 | $table->dropColumn('last_visit');
36 | });
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Database/Repositories/ProfileFieldOptionRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | integer('num_posts')->unsigned()->default(0);
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::table('topics', function (Blueprint $table) {
35 | $table->dropColumn('num_posts');
36 | });
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/database/migrations/2015_04_12_140000_create_conversation_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
24 | $table->string('title');
25 | $table->unsignedInteger('last_message_id')->nullable();
26 | });
27 | }
28 |
29 | /**
30 | * Reverse the migrations.
31 | *
32 | * @return void
33 | */
34 | public function down()
35 | {
36 | Schema::drop('conversations');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Database/Repositories/ModerationLogSubjectRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | string('email')->index();
24 | $table->string('token')->index();
25 | $table->timestamp('created_at')->nullable();
26 | });
27 | }
28 |
29 | /**
30 | * Reverse the migrations.
31 | *
32 | * @return void
33 | */
34 | public function down()
35 | {
36 | Schema::drop('password_resets');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/Form/RenderableInterface.php:
--------------------------------------------------------------------------------
1 | input('user_id');
23 |
24 | return [
25 | 'name' => 'required|max:255|unique:users,name,'.$id,
26 | 'email' => 'required|email|max:255|unique:users,email,'.$id,
27 | 'password' => 'confirmed|min:6',
28 | 'usertitle' => 'string',
29 | ];
30 | }
31 |
32 | /**
33 | * @return bool
34 | */
35 | public function authorize() : bool
36 | {
37 | return true;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/resources/lang/admin/en/users.php:
--------------------------------------------------------------------------------
1 | 'Users',
11 | 'save_user' => 'Save User',
12 | 'add_user' => 'Add User',
13 | 'add_title' => 'New User',
14 | 'user' => 'User',
15 | 'mail' => 'Email',
16 | 'role' => 'User Role',
17 | 'regdate' => 'Registered',
18 | 'action' => 'Actions',
19 | 'edit' => 'Edit',
20 | 'delete_title' => 'Delete User',
21 | 'delete' => 'Delete',
22 | 'edit_title' => 'Edit User',
23 | 'name' => 'Username',
24 | 'usertitle' => 'User Title',
25 | 'password' => 'Password',
26 | 'password_confirm' => 'Confirm Password',
27 | 'error_creating_user' => 'Sorry, there was an error creating the user',
28 | 'user_create_success' => 'User created successfully!',
29 | ];
30 |
--------------------------------------------------------------------------------
/resources/views/topic/preview.twig:
--------------------------------------------------------------------------------
1 | {% if preview is not null %}
2 | {{ trans('general.preview') }}
3 |
4 |
5 |
6 |
7 |
{{ render_profile_link(preview.author) }}
8 |
{{ generate_time(preview.created_at) }}
9 |
10 |
11 |
12 | {{ preview.content_parsed|raw }} {# HTML is filtered by the parser, so show raw HTML. Only do this if you're 100% sure of your variables! #}
13 |
14 |
15 |
16 | {% endif %}
17 |
--------------------------------------------------------------------------------
/app/Database/Repositories/ProfileFieldGroupRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | string('imagehash', 32)->unique();
24 | $table->string('imagestring', 8);
25 | $table->timestamp('created_at')->nullable();
26 | $table->boolean('used')->default(false);
27 | });
28 | }
29 |
30 | /**
31 | * Reverse the migrations.
32 | *
33 | * @return void
34 | */
35 | public function down()
36 | {
37 | Schema::drop('captcha');
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Http/Controllers/ScheduleManagerController.php:
--------------------------------------------------------------------------------
1 | withHeaders([
23 | 'Content-type' => 'image/gif',
24 | 'Expires' => 'Sat, 1 Jan 2000 01:00:00 GMT',
25 | 'Last-Modified' => $dateTime->format('D, d M Y H:i:s') . ' GMT',
26 | 'Cache-Control' => 'no-cache, must-revalidate',
27 | 'Pragma' => 'no-cache',
28 | ]);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/database/migrations/2015_02_12_025520_create_permissions_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
24 | $table->string('permission_display')->nullable();
25 | $table->string('permission_slug');
26 | $table->nullableTimestamps();
27 | });
28 | }
29 |
30 | /**
31 | * Reverse the migrations.
32 | *
33 | * @return void
34 | */
35 | public function down()
36 | {
37 | Schema::drop('permissions');
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Presenters/Moderations/ReversibleModerationPresenterInterface.php:
--------------------------------------------------------------------------------
1 | delete();
17 | $tasksNamespace = 'MyBB\\Core\\Tasking\\Tasks\\';
18 |
19 | $tasks = [
20 | [
21 | 'namespace' => $tasksNamespace . 'LogPruningTask',
22 | 'frequency' => '0 0 * * *', // Every day at 00:00
23 | 'name' => 'admin::tasks.tasks.log_pruning',
24 | 'desc' => 'admin::tasks.tasks.log_pruning_desc',
25 | 'last_run' => time(),
26 | 'next_run' => time(),
27 | 'enabled' => 1,
28 | 'logging' => 1,
29 | ],
30 | ];
31 |
32 | DB::table('tasks')->insert($tasks);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/Database/Models/ProfileFieldOption.php:
--------------------------------------------------------------------------------
1 | name;
38 | }
39 |
40 | /**
41 | * @return string
42 | */
43 | public function getValue() : string
44 | {
45 | return $this->value;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/app/Permissions/Interfaces/InheritPermissionInterface.php:
--------------------------------------------------------------------------------
1 | integer('user_id')->unsigned()->nullable()->change();
25 | });
26 | }
27 |
28 | /**
29 | * Reverse the migrations.
30 | *
31 | * @return void
32 | */
33 | public function down()
34 | {
35 | Schema::table('searchlog', function (Blueprint $table) {
36 | $table->integer('user_id')->unsigned()->change();
37 | });
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Renderers/Post/Quote/Markdown.php:
--------------------------------------------------------------------------------
1 | app = $app;
27 | }
28 |
29 | /**
30 | * @param Post $post
31 | *
32 | * @return string
33 | */
34 | public function renderFromPost(Post $post) : string
35 | {
36 | $post = $this->app->make('MyBB\\Core\\Presenters\\PostPresenter', [$post]);
37 | $message = $post->content;
38 |
39 | // TODO: MarkdownQuoteRenderer
40 | return "> {$message}\n\n";
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/app/Presenters/Moderations/ModerationPresenterInterface.php:
--------------------------------------------------------------------------------
1 | "Ye secret code must be at least six characters and match the confirmation.",
17 | "user" => "No pirate found with that parrot address!",
18 | "token" => "This password reset token is invalid.",
19 | "sent" => "A parrot with a note for resettin\' yer code has been flown.",
20 | "reset" => "Ye secret code has been reset!",
21 | "resetpw" => "Reset ye secret code",
22 | "email_subject" => "Ye secret code reset link",
23 |
24 | ];
25 |
--------------------------------------------------------------------------------
/app/Repository/RepositoryFactory.php:
--------------------------------------------------------------------------------
1 | registry = $registry;
27 | $this->application = $application;
28 | }
29 |
30 | /**
31 | * @param string $key
32 | *
33 | * @return RepositoryInterface
34 | */
35 | public function build(string $key = null)
36 | {
37 | $class = $this->registry->get($key);
38 | if ($class) {
39 | return $this->application->make($class);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/database/migrations/2015_04_03_143500_remove_role_id_from_users.php:
--------------------------------------------------------------------------------
1 | dropColumn('role_id');
24 | });
25 | }
26 |
27 | /**
28 | * Reverse the migrations.
29 | *
30 | * @return void
31 | */
32 | public function down()
33 | {
34 | Schema::table('users', function (Blueprint $table) {
35 | // The original column wasn't nullable but to avoid issues with existing users we need to make it nullable
36 | $table->integer('role_id')->nullable();
37 | });
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Database/Models/TaskLog.php:
--------------------------------------------------------------------------------
1 | created_at = $model->freshTimestamp();
39 | });
40 | }
41 |
42 | /**
43 | * Get the task record associated with the log.
44 | */
45 | public function task()
46 | {
47 | return $this->belongsTo(Task::class, 'task_id', 'id');
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/app/Http/Middleware/AbstractBootstrapMiddleware.php:
--------------------------------------------------------------------------------
1 | getRoutes();
36 | $route = $collection->match($request->create($request->path(), $request->method()));
37 |
38 | return $route->getAction();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/database/migrations/2015_03_29_145952_add_num_likes_to_users_table.php:
--------------------------------------------------------------------------------
1 | unsignedInteger('num_likes_made')->default(0);
25 | }
26 | );
27 | }
28 |
29 | /**
30 | * Reverse the migrations.
31 | *
32 | * @return void
33 | */
34 | public function down()
35 | {
36 | Schema::table(
37 | 'users',
38 | function (Blueprint $table) {
39 | $table->dropColumn('num_likes_made');
40 | }
41 | );
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/resources/assets/sass/base/_colors.scss:
--------------------------------------------------------------------------------
1 | // Theme colors
2 | $primary-color: #007fd0;
3 | $secondary-color: #ff7500;
4 |
5 |
6 | // Font colors
7 | $font-color: #222;
8 | $invert-font-color: #fff;
9 | $alt-font-color-1: #666;
10 | $alt-font-color-2: #999;
11 | $alt-font-color-3: #ccc;
12 | $alt-font-color-4: #444;
13 |
14 |
15 | // Border colors
16 | $border-1: #dfdfdf;
17 | $border-2: #ccc;
18 | $border-3: #e3e3e3;
19 | $dark-border-1: #222;
20 | $primary-color-border: #0a539b;
21 |
22 |
23 | // Background colors
24 | $background-default: #fff;
25 | $background-1: #f7f7f7;
26 | $background-2: #f2f2f2;
27 | $background-3: #eee;
28 | $background-4: #ccc;
29 | $dark-background-1: #333;
30 | $dark-background-2: #444;
31 | $unread-count: #eb5257;
32 |
33 |
34 | // Status background & border colors
35 | $status-highlight: #ebf4fb;
36 | $status-highlight-border: #afd9fa;
37 | $status-deleted: #ece3fa;
38 | $status-deleted-border: #ddcafa;
39 | $status-pending: #f2dede;
40 | $status-pending-border: #f2aaab;
41 |
42 |
43 | // Success / danger colors
44 | $success-color: #68c000;
45 | $danger-color: #eb5257;
46 |
--------------------------------------------------------------------------------
/app/Repository/RepositoryRegistry.php:
--------------------------------------------------------------------------------
1 | repositories = $repositories;
20 | }
21 |
22 | /**
23 | * @param string $key
24 | * @param string $className
25 | */
26 | public function addRepository(string $key, string $className)
27 | {
28 | $this->repositories[$key] = $className;
29 | }
30 |
31 | /**
32 | * @param string|null $key
33 | *
34 | * @return string
35 | */
36 | public function get(string $key = null)
37 | {
38 | return $this->repositories[$key];
39 | }
40 |
41 | /**
42 | * @return string[]
43 | */
44 | public function getAll()
45 | {
46 | return $this->repositories;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/config/view.php:
--------------------------------------------------------------------------------
1 | [
17 | realpath(base_path('resources/views'))
18 | ],
19 | /*
20 | |--------------------------------------------------------------------------
21 | | Compiled View Path
22 | |--------------------------------------------------------------------------
23 | |
24 | | This option determines where all the compiled Blade templates will be
25 | | stored for your application. Typically, this is within the storage
26 | | directory. However, as usual, you are free to change this value.
27 | |
28 | */
29 |
30 | 'compiled' => realpath(storage_path() . '/framework/views'),
31 |
32 | ];
33 |
--------------------------------------------------------------------------------
/database/migrations/2015_02_26_122601_create_confirmations_table.php:
--------------------------------------------------------------------------------
1 | string('token', 16)->unique();
24 | $table->string('type');
25 | $table->integer('user_id')->unsigned();
26 | $table->string('newData')->nullable();
27 |
28 | $table->foreign('user_id')->references('id')->on('users');
29 | });
30 | }
31 |
32 | /**
33 | * Reverse the migrations.
34 | *
35 | * @return void
36 | */
37 | public function down()
38 | {
39 | Schema::drop('confirmations');
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/database/migrations/2015_04_07_132222_add_approved_to_posts_and_topics.php:
--------------------------------------------------------------------------------
1 | boolean('approved')->default(1)->index();
17 | });
18 |
19 | Schema::table('posts', function (Blueprint $table) {
20 | $table->boolean('approved')->default(1)->index();
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | *
27 | * @return void
28 | */
29 | public function down()
30 | {
31 | Schema::table('topics', function (Blueprint $table) {
32 | $table->dropColumn('approved');
33 | });
34 |
35 | Schema::table('posts', function (Blueprint $table) {
36 | $table->dropColumn('approved');
37 | });
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/database/migrations/2016_09_03_090659_create_warning_types_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
23 | $table->string('reason');
24 | $table->integer('points');
25 | $table->integer('expiration_multiple');
26 | $table->string('expiration_type');
27 | $table->tinyInteger('must_acknowledge');
28 | });
29 | }
30 |
31 | /**
32 | * Reverse the migrations.
33 | *
34 | * @return void
35 | */
36 | public function down()
37 | {
38 | Schema::drop('warning_types');
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/database/migrations/2015_02_12_025505_create_roles_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
24 | $table->string('role_display_name');
25 | $table->string('role_description')->nullable();
26 | $table->string('role_slug');
27 | $table->string('role_username_style')->default(':user');
28 | $table->nullableTimestamps();
29 | });
30 | }
31 |
32 | /**
33 | * Reverse the migrations.
34 | *
35 | * @return void
36 | */
37 | public function down()
38 | {
39 | Schema::drop('roles');
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/resources/views/moderation/base.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.base" %}
2 | {% block title %}
3 | {{ trans('moderation.control_panel_title') }}
4 | {% endblock %}
5 | {% block contents %}
6 |
14 |
17 | {% endblock %}
18 |
--------------------------------------------------------------------------------
/resources/views/account/dashboard.twig:
--------------------------------------------------------------------------------
1 | {% extends "account.base" %}
2 | {% block inner_title %}
3 | {{ trans('account.dashboard') }}
4 | {% endblock %}
5 | {% block inner_contents %}
6 |
9 |
10 |
12 | {{ render_profile_link(auth_user) }}
13 |
14 | {{ trans('topic.posts') }}
15 | {{ auth_user.num_posts }}
16 | {{ trans('account.email') }}
17 | {{ auth_user.email }}
18 | {{ trans('member.joinDate') }}
19 | {{ generate_time(auth_user.created_at) }}
20 |
21 |
22 | {% endblock %}
--------------------------------------------------------------------------------
/database/migrations/2015_03_19_211900_create_poll_votes_table.php:
--------------------------------------------------------------------------------
1 | increments('id');
24 | $table->unsignedInteger('poll_id');
25 | $table->unsignedInteger('user_id')->nullable();
26 | $table->string('vote');
27 | $table->nullableTimestamps();
28 |
29 | $table->foreign('poll_id')->references('id')->on('polls');
30 | });
31 | }
32 |
33 | /**
34 | * Reverse the migrations.
35 | *
36 | * @return void
37 | */
38 | public function down()
39 | {
40 | Schema::drop('poll_votes');
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/app/Http/Requests/Account/UpdatePrivacyRequest.php:
--------------------------------------------------------------------------------
1 | 'boolean',
22 | 'receive_messages' => 'boolean',
23 | 'block_blocked_messages' => 'boolean',
24 | 'hide_blocked_posts' => 'boolean',
25 | 'only_buddy_messages' => 'boolean',
26 | 'receive_email' => 'boolean',
27 | 'dob_privacy' => 'required|in:0,1,2',
28 | 'dob_visibility' => 'required|in:0,1,2',
29 | ];
30 | }
31 |
32 | /**
33 | * @return bool
34 | */
35 | public function authorize() : bool
36 | {
37 | return true;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/database/migrations/2015_04_03_143501_create_role_user_pivot_table.php:
--------------------------------------------------------------------------------
1 | unsignedInteger('user_id');
24 | $table->unsignedInteger('role_id');
25 | $table->boolean('is_display')->default(false);
26 |
27 | $table->foreign('user_id')->references('id')->on('users');
28 | $table->foreign('role_id')->references('id')->on('roles');
29 | });
30 | }
31 |
32 | /**
33 | * Reverse the migrations.
34 | *
35 | * @return void
36 | */
37 | public function down()
38 | {
39 | Schema::drop('role_user');
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/database/migrations/2015_04_18_172533_add_closed_to_topics_and_forums_tables.php:
--------------------------------------------------------------------------------
1 | tinyInteger('closed')->unsigned()->default(0)->index();
17 | });
18 |
19 | Schema::table('forums', function (Blueprint $table) {
20 | $table->tinyInteger('closed')->unsigned()->default(0)->index();
21 | });
22 | }
23 |
24 | /**
25 | * Reverse the migrations.
26 | *
27 | * @return void
28 | */
29 | public function down()
30 | {
31 | Schema::table('topics', function (Blueprint $table) {
32 | $table->dropColumn('closed');
33 | });
34 |
35 | Schema::table('forums', function (Blueprint $table) {
36 | $table->dropColumn('closed');
37 | });
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/app/Moderation/ModerationInterface.php:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $table->string('namespace');
19 | $table->string('frequency');
20 | $table->string('name');
21 | $table->string('desc');
22 | $table->unsignedInteger('last_run')->default(0);
23 | $table->unsignedInteger('next_run')->default(0);
24 | $table->boolean('enabled')->default(true);
25 | $table->boolean('logging')->default(true);
26 | });
27 | }
28 |
29 | /**
30 | * Reverse the migrations.
31 | *
32 | * @return void
33 | */
34 | public function down()
35 | {
36 | Schema::dropIfExists('tasks');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/resources/views/admin/settings/types/forumselect.twig:
--------------------------------------------------------------------------------
1 |
2 | {{ trans('admin::settings.forum.all') }}
3 |
4 |
5 | {{ trans('admin::settings.forum.select') }}
6 |
7 | {# todo need some js for showing/hiding select dependends on selected radio #}
8 |
9 | {% for forum in forums %}
10 |
11 | {{ forum.title }}
12 |
13 | {% endfor %}
14 |
15 |
16 |
17 | {{ trans('admin::settings.forum.none') }}
18 |
--------------------------------------------------------------------------------
/resources/views/admin/settings/types/roleselect.twig:
--------------------------------------------------------------------------------
1 |
2 | {{ trans('admin::settings.role.all') }}
3 |
4 |
5 | {{ trans('admin::settings.role.select') }}
6 |
7 | {# todo need some js for showing/hiding select dependends on selected radio #}
8 |
9 | {% for role in roles %}
10 |
11 | {{ role.role_display_name }}
12 |
13 | {% endfor %}
14 |
15 |
16 |
17 | {{ trans('admin::settings.role.none') }}
18 |
--------------------------------------------------------------------------------
/resources/views/admin/users/profile_fields/edit.twig:
--------------------------------------------------------------------------------
1 | {% extends "layouts.admin" %}
2 | {% block title %}{% endblock %}
3 | {% block contents %}
4 |
5 |
{{ trans('admin::profile_fields.edit_field') }}
6 |
7 |
8 | {{ form_open({'route': ['admin.users.profile_fields.edit', field.id], 'method': 'post'}) }}
9 | {% include "admin.partials.users.profile_field_form" with [field] %}
10 | {{ form_close() }}
11 |
12 |
13 |
14 | {{ form_open({'route': ['admin.users.profile_fields.test'], 'method': 'post'}) }}
15 | {{ form_hidden('profile_field_id', field.id) }}
16 |
17 |
{{ trans('admin::profile_fields.edit_preview') }}
18 |
25 | {{ form_close() }}
26 |
27 | {% endblock %}
28 |
--------------------------------------------------------------------------------
/app/Database/Repositories/ProfileFieldRepositoryInterface.php:
--------------------------------------------------------------------------------
1 | softDeletes();
24 | });
25 | Schema::table('topics', function (Blueprint $table) {
26 | $table->softDeletes();
27 | });
28 | }
29 |
30 | /**
31 | * Reverse the migrations.
32 | *
33 | * @return void
34 | */
35 | public function down()
36 | {
37 | Schema::table('posts', function (Blueprint $table) {
38 | $table->dropSoftDeletes();
39 | });
40 | Schema::table('topics', function (Blueprint $table) {
41 | $table->dropSoftDeletes();
42 | });
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/database/seeds/DatabaseSeeder.php:
--------------------------------------------------------------------------------
1 | call('ContentClassTableSeeder');
25 |
26 | $this->call('UsersTableSeeder');
27 | $this->call('RolesTableSeeder');
28 | $this->call('RoleUserTableSeeder');
29 | $this->call('PermissionsTableSeeder');
30 | $this->call('PermissionRoleTableSeeder');
31 |
32 | $this->call('ForumsTableSeeder');
33 |
34 | $this->call('TopicsTableSeeder');
35 | $this->call('PostsTableSeeder');
36 |
37 | $this->call('UserSettingsTableSeeder');
38 |
39 | $this->call('SettingsTableSeeder');
40 | $this->call('ProfileFieldsTableSeeder');
41 |
42 | $this->call('TasksTableSeeder');
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/app/Transformers/TopicTransformer.php:
--------------------------------------------------------------------------------
1 | $topic->title,
25 | 'slug' => $topic->slug,
26 | 'forum_id' => (int)$topic->forum_id,
27 | 'user_id' => (int)$topic->user_id,
28 | 'first_post_id' => (int)$topic->first_post_id,
29 | 'last_post_id' => (int)$topic->last_post_id,
30 | 'views' => (int)$topic->views,
31 | 'created_at' => (string)$topic->created_at,
32 | 'updated_at' => (string)$topic->updated_at,
33 | 'num_posts' => (int)$topic->num_posts,
34 | ];
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/app/Http/Middleware/RedirectIfAuthenticated.php:
--------------------------------------------------------------------------------
1 | auth = $auth;
33 | }
34 |
35 | /**
36 | * Handle an incoming request.
37 | *
38 | * @param \Illuminate\Http\Request $request
39 | * @param \Closure $next
40 | *
41 | * @return mixed
42 | */
43 | public function handle($request, Closure $next)
44 | {
45 | if ($this->auth->check()) {
46 | return new RedirectResponse(url('/'));
47 | }
48 |
49 | return $next($request);
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/database/migrations/2016_09_03_090139_add_warnings_to_users_table.php:
--------------------------------------------------------------------------------
1 | unsignedInteger('warn_points')->default(0);
25 | $table->boolean('warned')->default(false);
26 | }
27 | );
28 | }
29 |
30 | /**
31 | * Reverse the migrations.
32 | *
33 | * @return void
34 | */
35 | public function down()
36 | {
37 | Schema::table(
38 | 'users',
39 | function (Blueprint $table) {
40 | $table->dropColumn('warn_points');
41 | $table->dropColumn('warned');
42 | }
43 | );
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/resources/lang/en/passwords.php:
--------------------------------------------------------------------------------
1 | "Passwords must be at least six characters and match the confirmation.",
23 | "user" => "We can't find a user with that e-mail address.",
24 | "token" => "This password reset token is invalid.",
25 | "sent" => "We have e-mailed your password reset link!",
26 | "reset" => "Your password has been reset!",
27 | "resetpw" => "Reset your password",
28 | "email_subject" => "Your Password Reset Link",
29 |
30 | ];
31 |
--------------------------------------------------------------------------------