File tree Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Expand file tree Collapse file tree 3 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -38,11 +38,18 @@ public function run(Router &$router) {
38
38
$ model ->parent_type = null ;
39
39
$ model ->title = null ;
40
40
$ model ->user_session = UserSession::load ($ router );
41
+ $ model ->user = (isset ($ model ->user_session ) ?
42
+ new User ($ model ->user_session ->user_id ) : null );
41
43
42
44
try { $ model ->comment = new Comment ($ model ->id ); }
43
45
catch (CommentNotFoundException $ e ) { $ model ->comment = null ; }
44
46
catch (InvalidArgumentException $ e ) { $ model ->comment = null ; }
45
47
48
+ $ model ->acl_allowed = ($ model ->user &&
49
+ ($ model ->user ->getOptionsBitmask () & User::OPTION_ACL_COMMENT_DELETE )
50
+ || ($ model ->user_session ->user_id == $ model ->comment ->getUserId ())
51
+ );
52
+
46
53
if ($ model ->comment === null ) {
47
54
$ model ->error = "NOT_FOUND " ;
48
55
} else {
Original file line number Diff line number Diff line change @@ -35,6 +35,12 @@ public function run(Router &$router) {
35
35
$ model ->id = (isset ($ data ["id " ]) ? $ data ["id " ] : null );
36
36
$ model ->title = null ;
37
37
$ model ->user_session = UserSession::load ($ router );
38
+ $ model ->user = (isset ($ model ->user_session ) ?
39
+ new User ($ model ->user_session ->user_id ) : null );
40
+
41
+ $ model ->acl_allowed = ($ model ->user &&
42
+ $ model ->user ->getOptionsBitmask () & User::OPTION_ACL_DOCUMENT_DELETE
43
+ );
38
44
39
45
try { $ model ->document = new Document ($ model ->id ); }
40
46
catch (DocumentNotFoundException $ e ) { $ model ->document = null ; }
@@ -76,6 +82,11 @@ protected function tryDelete(Router &$router, DocumentDeleteModel &$model) {
76
82
}
77
83
CSRF ::invalidate ($ csrf_id );
78
84
85
+ if (!$ model ->acl_allowed ) {
86
+ $ model ->error = "ACL_NOT_SET " ;
87
+ return ;
88
+ }
89
+
79
90
$ model ->error = false ;
80
91
81
92
$ id = (int ) $ model ->id ;
Original file line number Diff line number Diff line change @@ -35,6 +35,12 @@ public function run(Router &$router) {
35
35
$ model ->news_post = null ;
36
36
$ model ->title = null ;
37
37
$ model ->user_session = UserSession::load ($ router );
38
+ $ model ->user = (isset ($ model ->user_session ) ?
39
+ new User ($ model ->user_session ->user_id ) : null );
40
+
41
+ $ model ->acl_allowed = ($ model ->user &&
42
+ $ model ->user ->getOptionsBitmask () & User::OPTION_ACL_NEWS_DELETE
43
+ );
38
44
39
45
try { $ model ->news_post = new NewsPost ($ model ->id ); }
40
46
catch (NewsPostNotFoundException $ e ) { $ model ->news_post = null ; }
@@ -76,6 +82,11 @@ protected function tryDelete(Router &$router, NewsDeleteModel &$model) {
76
82
}
77
83
CSRF ::invalidate ($ csrf_id );
78
84
85
+ if (!$ model ->acl_allowed ) {
86
+ $ model ->error = "ACL_NOT_SET " ;
87
+ return ;
88
+ }
89
+
79
90
$ model ->error = false ;
80
91
81
92
$ id = (int ) $ model ->id ;
You can’t perform that action at this time.
0 commit comments