Skip to content

Commit

Permalink
Update for Flarum beta 16
Browse files Browse the repository at this point in the history
  • Loading branch information
clarkwinkelmann committed Apr 4, 2021
1 parent 40ca194 commit fc9beb1
Show file tree
Hide file tree
Showing 26 changed files with 523 additions and 419 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"forum": "https://discuss.flarum.org/d/5791"
},
"require": {
"flarum/core": "^0.1.0-beta.15"
"flarum/core": "^0.1.0-beta.16"
},
"replace": {
"flagrow/masquerade": "*"
Expand Down
13 changes: 8 additions & 5 deletions extend.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
use Flarum\Api\Controller\UpdateUserController;
use Flarum\Api\Serializer\BasicUserSerializer;
use Flarum\Api\Serializer\ForumSerializer;
use Flarum\Event\ConfigureUserGambits;
use Flarum\User\Filter\UserFilterer;
use Flarum\User\Search\UserSearcher;
use Flarum\User\User;
use FoF\Masquerade\Api\Controllers as Api;
use Flarum\Extend;
Expand Down Expand Up @@ -59,7 +60,7 @@
}),
(new Extend\ApiSerializer(BasicUserSerializer::class))
->hasMany('bioFields', AnswerSerializer::class)
->mutate(function (BasicUserSerializer $serializer, User $user): array {
->attributes(function (BasicUserSerializer $serializer, User $user): array {
if ($serializer->getActor()->cannot('fof.masquerade.view-profile')) {
// When the relationships are auto-loaded later,
// this one will be skipped because it has already been set to null
Expand All @@ -70,8 +71,10 @@
}),

(new Extend\ApiSerializer(ForumSerializer::class))
->mutate(ForumAttributes::class),
->attributes(ForumAttributes::class),

(new Extend\Event())
->listen(ConfigureUserGambits::class, Listeners\AddUserGambits::class),
(new Extend\SimpleFlarumSearch(UserSearcher::class))
->addGambit(Gambits\AnswerGambit::class),
(new Extend\Filter(UserFilterer::class))
->addFilter(Gambits\AnswerGambit::class),
];
2 changes: 1 addition & 1 deletion js/dist/admin.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/dist/admin.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/dist/forum.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion js/dist/forum.js.map

Large diffs are not rendered by default.

794 changes: 446 additions & 348 deletions js/package-lock.json

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions js/package.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
{
"private": true,
"name": "@fof/masquerade",
"private": true,
"dependencies": {
"flarum-webpack-config": "0.1.0-beta.10",
"flarum-webpack-config": "^0.1.0-beta.10",
"html5sortable": "^0.9.17",
"webpack": "^4.0.0",
"webpack-cli": "^3.0.7"
"webpack": "^4.43.0",
"webpack-cli": "^3.3.12"
},
"scripts": {
"dev": "webpack --mode development --watch",
"build": "webpack --mode production",
"format": "prettier --single-quote --trailing-comma es5 --print-width 150 --tab-width 4 --write src"
"lint": "prettier --single-quote --trailing-comma es5 --print-width 150 --tab-width 4 --write src"
},
"devDependencies": {
"prettier": "^2.1.2"
"flarum": "0.1.0-beta.16",
"prettier": "^2.2.1"
}
}
14 changes: 7 additions & 7 deletions js/src/admin/components/MasqueradePage.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import sortable from 'html5sortable/dist/html5sortable.es.js';

import app from 'flarum/app';
import icon from 'flarum/helpers/icon';
import ExtensionPage from 'flarum/components/ExtensionPage';
import Select from 'flarum/components/Select';
import Switch from 'flarum/components/Switch';
import Button from 'flarum/components/Button';
import saveSettings from 'flarum/utils/saveSettings';
import withAttr from 'flarum/utils/withAttr';
import icon from 'flarum/common/helpers/icon';
import ExtensionPage from 'flarum/admin/components/ExtensionPage';
import Select from 'flarum/common/components/Select';
import Switch from 'flarum/common/components/Switch';
import Button from 'flarum/common/components/Button';
import saveSettings from 'flarum/admin/utils/saveSettings';
import withAttr from 'flarum/common/utils/withAttr';
import SelectFieldOptionEditor from './SelectFieldOptionEditor';

/* global m, $ */
Expand Down
4 changes: 2 additions & 2 deletions js/src/admin/components/SelectFieldOptionEditor.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import app from 'flarum/app';
import Component from 'flarum/Component';
import icon from 'flarum/helpers/icon';
import Component from 'flarum/common/Component';
import icon from 'flarum/common/helpers/icon';

/* global m */

Expand Down
6 changes: 3 additions & 3 deletions js/src/forum/addProfilePane.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { extend } from 'flarum/extend';
import { extend } from 'flarum/common/extend';
import app from 'flarum/app';
import LinkButton from 'flarum/components/LinkButton';
import UserPage from 'flarum/components/UserPage';
import LinkButton from 'flarum/common/components/LinkButton';
import UserPage from 'flarum/forum/components/UserPage';
import ProfileConfigurePane from './panes/ProfileConfigurePane';
import ProfilePane from './panes/ProfilePane';

Expand Down
4 changes: 2 additions & 2 deletions js/src/forum/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import app from 'flarum/app';
import User from 'flarum/models/User';
import User from 'flarum/common/models/User';
import Field from './../lib/models/Field';
import Answer from './../lib/models/Answer';
import Model from 'flarum/Model';
import Model from 'flarum/common/Model';

import addProfilePane from './addProfilePane';
import mutateUserHero from './mutateUserHero';
Expand Down
4 changes: 2 additions & 2 deletions js/src/forum/mutateUserHero.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { extend } from 'flarum/extend';
import UserCard from 'flarum/components/UserCard';
import { extend } from 'flarum/common/extend';
import UserCard from 'flarum/forum/components/UserCard';
import TypeFactory from './types/TypeFactory';

export default function () {
Expand Down
6 changes: 3 additions & 3 deletions js/src/forum/panes/ProfileConfigurePane.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import app from 'flarum/app';
import UserPage from 'flarum/components/UserPage';
import Button from 'flarum/components/Button';
import Link from 'flarum/components/Link';
import UserPage from 'flarum/forum/components/UserPage';
import Button from 'flarum/common/components/Button';
import Link from 'flarum/common/components/Link';
import TypeFactory from './../types/TypeFactory';

/* global m */
Expand Down
2 changes: 1 addition & 1 deletion js/src/forum/panes/ProfilePane.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import UserPage from 'flarum/components/UserPage';
import UserPage from 'flarum/forum/components/UserPage';
import TypeFactory from './../types/TypeFactory';

/* global m */
Expand Down
2 changes: 1 addition & 1 deletion js/src/forum/types/BaseField.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import icon from 'flarum/helpers/icon';
import icon from 'flarum/common/helpers/icon';

/* global m */

Expand Down
2 changes: 1 addition & 1 deletion js/src/forum/types/BooleanField.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import icon from 'flarum/helpers/icon';
import icon from 'flarum/common/helpers/icon';
import BaseField from './BaseField';

export default class BooleanField extends BaseField {
Expand Down
2 changes: 1 addition & 1 deletion js/src/forum/types/EmailField.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Button from 'flarum/components/Button';
import Button from 'flarum/common/components/Button';
import BaseField from './BaseField';

export default class EmailField extends BaseField {
Expand Down
2 changes: 1 addition & 1 deletion js/src/forum/types/SelectField.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Select from 'flarum/components/Select';
import Select from 'flarum/common/components/Select';
import BaseField from './BaseField';

const NO_OPTION_SELECTED_KEY = 'fof_masquerade_no_option_selected';
Expand Down
2 changes: 1 addition & 1 deletion js/src/forum/types/UrlField.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Button from 'flarum/components/Button';
import Button from 'flarum/common/components/Button';
import BaseField from './BaseField';

export default class UrlField extends BaseField {
Expand Down
2 changes: 1 addition & 1 deletion js/src/lib/models/Answer.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Model from 'flarum/Model';
import Model from 'flarum/common/Model';

export default class Answer extends Model {
content = Model.attribute('content');
Expand Down
2 changes: 1 addition & 1 deletion js/src/lib/models/Field.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import Model from 'flarum/Model';
import Model from 'flarum/common/Model';

export default class Field extends Model {
name = Model.attribute('name');
Expand Down
5 changes: 0 additions & 5 deletions src/Content/ConfigureProfile.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,12 @@
namespace FoF\Masquerade\Content;

use Flarum\Frontend\Document;
use Flarum\User\Exception\PermissionDeniedException;
use Psr\Http\Message\ServerRequestInterface;

class ConfigureProfile
{
public function __invoke(Document $document, ServerRequestInterface $request)
{
if (!$request->getAttribute('session')->get('user_id')) {
throw new PermissionDeniedException;
}

$request->getAttribute('actor')->assertCan('fof.masquerade.have-profile');
}
}
2 changes: 1 addition & 1 deletion src/FieldType/TypeFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public static function typeForField(array $attributes)

$class = self::classForType($type);

return app($class);
return resolve($class);
}

/**
Expand Down
37 changes: 29 additions & 8 deletions src/Gambits/AnswerGambit.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,21 @@

namespace FoF\Masquerade\Gambits;

use Flarum\Filter\FilterInterface;
use Flarum\Filter\FilterState;
use Flarum\Search\AbstractRegexGambit;
use Flarum\Search\AbstractSearch;
use Flarum\Search\SearchState;
use Illuminate\Database\Query\Builder;
use Illuminate\Database\Query\Expression;

class AnswerGambit extends AbstractRegexGambit
class AnswerGambit extends AbstractRegexGambit implements FilterInterface
{
protected $pattern = 'answer:(.+)';
protected function getGambitPattern()
{
return 'answer:(.+)';
}

public function apply(AbstractSearch $search, $bit)
public function apply(SearchState $search, $bit)
{
if (!$search->getActor()->hasPermission('fof.masquerade.view-profile')) {
return false;
Expand All @@ -19,15 +25,30 @@ public function apply(AbstractSearch $search, $bit)
return parent::apply($search, $bit);
}

protected function conditions(AbstractSearch $search, array $matches, $negate)
protected function conditions(SearchState $search, array $matches, $negate)
{
$bit = $matches[1];

$search->getQuery()->whereExists(function ($query) use ($bit) {
$query->select(app('flarum.db')->raw(1))
$this->constrain($search->getQuery(), $bit, $negate);
}

public function getFilterKey(): string
{
return 'answer';
}

public function filter(FilterState $filterState, string $filterValue, bool $negate)
{
$this->constrain($filterState->getQuery(), $filterValue, $negate);
}

protected function constrain(Builder $query, string $bit, bool $negate)
{
$query->whereExists(function (Builder $query) use ($bit) {
$query->select($query->raw(1))
->from('fof_masquerade_answers')
->where('users.id', new Expression('user_id'))
->where('content', 'like', "%$bit%");
});
}, 'and', $negate);
}
}
14 changes: 0 additions & 14 deletions src/Listeners/AddUserGambits.php

This file was deleted.

0 comments on commit fc9beb1

Please sign in to comment.