21 Commits

Author SHA1 Message Date
Robert Schäfer
8072939458 Tiny performance improvement 2019-03-06 17:21:49 +01:00
Robert Schäfer
f40a67b7a8 Implement disabling of comments+users+posts 2019-03-06 17:13:36 +01:00
Robert Schäfer
1c34f10f96 Test refactoring: Check comments + posts 2019-03-06 17:13:36 +01:00
Robert Schäfer
5cff508bd6 Disable/enable fullfills tests 2019-03-06 01:07:04 +01:00
Robert Schäfer
0a73ddd46d Refactor: custom resolvers for moderation 2019-03-05 23:59:54 +01:00
Robert Schäfer
2b7576521c Fix lint
+ return more attributes in post factory for convenience
2019-03-05 18:17:02 +01:00
Robert Schäfer
592f25b978 Implement update of .disabled field 2019-03-05 18:14:25 +01:00
Robert Schäfer
99cebc8d64 Implementation ready except disabled attr. 2019-03-05 17:45:10 +01:00
Robert Schäfer
f2e7e515a4 Check from: User! matches the authenticated user 2019-03-05 16:46:39 +01:00
Robert Schäfer
85d9d7043e Setup isModerator permission for disable relation 2019-03-05 16:25:01 +01:00
Robert Schäfer
420ea8a4d6 Scaffold some tests for disabledBy relation 2019-03-05 16:15:31 +01:00
Robert Schäfer
180491c08c Put isAuthor in permissions middleware
I find it dirty to access the database in a middleware, ie. I would like
to put all access on the database as close to the resolver as possible.
However, in this case that would mean to put the authorization check in
the resolver, where nobody expects it to be.

CC @appinteractive
2019-03-04 19:43:24 +01:00
Robert Schäfer
c869724d29 Let all tests pass 💚 2019-03-04 18:41:05 +01:00
Robert Schäfer
b2520258a3 Improve specification of posts resolver
* only authors are alllowed to update/delete their own posts
* set disabled+deleted to false if not provided
2019-03-04 18:41:05 +01:00
Robert Schäfer
fb2b407be0 Extend @Tirokk 's test to Create and Update 2019-03-03 14:32:29 +01:00
Robert Schäfer
f25708875a Refactor badges test
CC @Tirokk @grenzfrequence

* the top level block should correspond with the name of the resolver
  * the block below should be `CreatePost` or `UpdatePost`
* the arguments of client.request are `query/mutation`, `variables` but
  you passed in the `headers` which should go into `new
  GraphQlClient(host, options)`
* re-use the very same mutation to avoid bugs in the tests
* use `await expect(someAsyncMethod).resolves.toEqual(expected)` style for
  extra test assurance
2019-03-03 14:01:50 +01:00
Wolfgang Huß
6937c60ef8 Only admins are allowed to create badges 2019-03-01 15:49:11 +01:00
Matt Rider
5e592f666b Write unit test badge creation
- for unauthenticated
- for authenticated admin

Co-authored-by: Wolfgang Huss <wolle.huss@pjannto.com>
2019-02-28 16:16:14 -03:00
Matt Rider
f9b60fa0b0 Fix lint 2019-02-27 08:10:20 -03:00
Robert Schäfer
5fd44230dd Get rid of LoggedInUser graphql type
This was causing a lot of headache on the frontend. Now, there a single
source of truth. If you query `currentUser` you can overwrite your local
copy of the user and update the UI.
2019-02-27 11:08:13 +01:00
Robert Schäfer
69bf53e05e Impplement currentUser query
* remove dead code (passport-jwt)
* refactor resolves to have a separate folder
* currentUser and login have the same response
2019-02-26 16:35:31 +01:00