@@ -13,6 +13,10 @@ var _ = require('lodash');
13
13
*/
14
14
router . get ( '/edit/*' , ( req , res , next ) => {
15
15
16
+ if ( ! res . locals . rights . write ) {
17
+ return res . render ( 'error-forbidden' ) ;
18
+ }
19
+
16
20
let safePath = entries . parsePath ( _ . replace ( req . path , '/edit' , '' ) ) ;
17
21
18
22
entries . fetchOriginal ( safePath , {
@@ -40,6 +44,13 @@ router.get('/edit/*', (req, res, next) => {
40
44
41
45
router . put ( '/edit/*' , ( req , res , next ) => {
42
46
47
+ if ( ! res . locals . rights . write ) {
48
+ return res . json ( {
49
+ ok : false ,
50
+ error : 'Forbidden'
51
+ } ) ;
52
+ }
53
+
43
54
let safePath = entries . parsePath ( _ . replace ( req . path , '/edit' , '' ) ) ;
44
55
45
56
entries . update ( safePath , req . body . markdown ) . then ( ( ) => {
@@ -61,6 +72,10 @@ router.put('/edit/*', (req, res, next) => {
61
72
62
73
router . get ( '/create/*' , ( req , res , next ) => {
63
74
75
+ if ( ! res . locals . rights . write ) {
76
+ return res . render ( 'error-forbidden' ) ;
77
+ }
78
+
64
79
if ( _ . some ( [ 'create' , 'edit' , 'account' , 'source' , 'history' , 'mk' ] , ( e ) => { return _ . startsWith ( req . path , '/create/' + e ) ; } ) ) {
65
80
return res . render ( 'error' , {
66
81
message : 'You cannot create a document with this name as it is reserved by the system.' ,
@@ -102,14 +117,21 @@ router.get('/create/*', (req, res, next) => {
102
117
103
118
router . put ( '/create/*' , ( req , res , next ) => {
104
119
120
+ if ( ! res . locals . rights . write ) {
121
+ return res . json ( {
122
+ ok : false ,
123
+ error : 'Forbidden'
124
+ } ) ;
125
+ }
126
+
105
127
let safePath = entries . parsePath ( _ . replace ( req . path , '/create' , '' ) ) ;
106
128
107
129
entries . create ( safePath , req . body . markdown ) . then ( ( ) => {
108
130
return res . json ( {
109
131
ok : true
110
132
} ) || true ;
111
133
} ) . catch ( ( err ) => {
112
- res . json ( {
134
+ return res . json ( {
113
135
ok : false ,
114
136
error : err . message
115
137
} ) ;
@@ -192,6 +214,13 @@ router.get('/*', (req, res, next) => {
192
214
*/
193
215
router . put ( '/*' , ( req , res , next ) => {
194
216
217
+ if ( ! res . locals . rights . write ) {
218
+ return res . json ( {
219
+ ok : false ,
220
+ error : 'Forbidden'
221
+ } ) ;
222
+ }
223
+
195
224
let safePath = entries . parsePath ( req . path ) ;
196
225
197
226
if ( _ . isEmpty ( req . body . move ) ) {
0 commit comments