1
- const { unless, isProvider, softDelete } = require ( 'feathers-hooks-common' ) ;
1
+ const { unless, when , isProvider, softDelete, stashBefore } = require ( 'feathers-hooks-common' ) ;
2
2
const { isVerified } = require ( 'feathers-authentication-management' ) . hooks ;
3
3
const { authenticate } = require ( 'feathers-authentication' ) . hooks ;
4
- const { associateCurrentUser, restrictToOwner } = require ( 'feathers-authentication-hooks' ) ;
4
+ const { associateCurrentUser } = require ( 'feathers-authentication-hooks' ) ;
5
5
const createSlug = require ( '../../hooks/create-slug' ) ;
6
6
const saveRemoteImages = require ( '../../hooks/save-remote-images' ) ;
7
7
const createExcerpt = require ( '../../hooks/create-excerpt' ) ;
8
8
const isModerator = require ( '../../hooks/is-moderator-boolean' ) ;
9
- const excludeDisabled = require ( '../../hooks/exclude-disabled' ) ;
9
+ // const excludeDisabled = require('../../hooks/exclude-disabled');
10
10
const thumbnails = require ( '../../hooks/thumbnails' ) ;
11
+ const restrictToOwnerOrModerator = require ( '../../hooks/restrictToOwnerOrModerator' ) ;
12
+ const restrictReviewAndEnableChange = require ( '../../hooks/restrictReviewAndEnableChange' ) ;
13
+ const xss = require ( '../../hooks/xss' ) ;
11
14
12
15
const thumbnailOptions = {
13
16
logo : {
@@ -22,25 +25,32 @@ const thumbnailOptions = {
22
25
}
23
26
} ;
24
27
28
+ const xssFields = [ 'description' , 'descriptionExcerpt' ] ;
29
+
25
30
module . exports = {
26
31
before : {
27
- all : softDelete ( ) ,
32
+ all : [
33
+ softDelete ( ) ,
34
+ xss ( { fields : xssFields } )
35
+ ] ,
28
36
find : [
29
- unless ( isModerator ( ) ,
30
- excludeDisabled ( )
31
- )
37
+ restrictToOwnerOrModerator ( { isEnabled : true , isReviewed : true } )
32
38
] ,
33
39
get : [
34
- unless ( isModerator ( ) ,
35
- excludeDisabled ( )
36
- )
40
+ restrictToOwnerOrModerator ( { isEnabled : true , isReviewed : true } )
37
41
] ,
38
42
create : [
39
43
authenticate ( 'jwt' ) ,
40
44
// Allow seeder to seed contributions
41
45
unless ( isProvider ( 'server' ) ,
42
46
isVerified ( )
43
47
) ,
48
+ when ( isModerator ( ) ,
49
+ hook => {
50
+ hook . data . isReviewed = true ;
51
+ return hook ;
52
+ }
53
+ ) ,
44
54
associateCurrentUser ( ) ,
45
55
createSlug ( { field : 'name' } ) ,
46
56
createExcerpt ( { field : 'description' } ) ,
@@ -51,10 +61,9 @@ module.exports = {
51
61
unless ( isProvider ( 'server' ) ,
52
62
isVerified ( )
53
63
) ,
54
- unless ( isModerator ( ) ,
55
- excludeDisabled ( ) ,
56
- restrictToOwner ( )
57
- ) ,
64
+ stashBefore ( ) ,
65
+ restrictReviewAndEnableChange ( ) ,
66
+ restrictToOwnerOrModerator ( { isEnabled : true } ) ,
58
67
createSlug ( { field : 'name' , overwrite : true } ) ,
59
68
createExcerpt ( { field : 'description' } ) ,
60
69
saveRemoteImages ( [ 'logo' , 'coverImg' ] )
@@ -64,26 +73,24 @@ module.exports = {
64
73
unless ( isProvider ( 'server' ) ,
65
74
isVerified ( )
66
75
) ,
67
- unless ( isModerator ( ) ,
68
- excludeDisabled ( ) ,
69
- restrictToOwner ( )
70
- ) ,
76
+ stashBefore ( ) ,
77
+ restrictReviewAndEnableChange ( ) ,
78
+ restrictToOwnerOrModerator ( { isEnabled : true } ) ,
71
79
createSlug ( { field : 'name' , overwrite : true } ) ,
72
80
createExcerpt ( { field : 'description' } ) ,
73
81
saveRemoteImages ( [ 'logo' , 'coverImg' ] )
74
82
] ,
75
83
remove : [
76
84
authenticate ( 'jwt' ) ,
77
85
isVerified ( ) ,
78
- unless ( isModerator ( ) ,
79
- excludeDisabled ( ) ,
80
- restrictToOwner ( )
81
- )
86
+ stashBefore ( ) ,
87
+ restrictToOwnerOrModerator ( { isEnabled : true } )
82
88
]
83
89
} ,
84
90
85
91
after : {
86
92
all : [
93
+ xss ( { fields : xssFields } )
87
94
// populate({ schema: userSchema }),
88
95
// populate({ schema: followerSchema })
89
96
] ,
0 commit comments