{"action":"reopened","issue":{"url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/issues/1008","labels_url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/issues/1008/labels{/name}","comments_url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/issues/1008/comments","events_url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/issues/1008/events","html_url":"https://github.com/GetSimpleCMS/GetSimpleCMS/issues/1008","id":56733169,"number":1008,"title":"safemode","user":{"login":"tablatronix","id":807787,"avatar_url":"https://avatars.githubusercontent.com/u/807787?v=3","gravatar_id":"","url":"https://api.github.com/users/tablatronix","html_url":"https://github.com/tablatronix","followers_url":"https://api.github.com/users/tablatronix/followers","following_url":"https://api.github.com/users/tablatronix/following{/other_user}","gists_url":"https://api.github.com/users/tablatronix/gists{/gist_id}","starred_url":"https://api.github.com/users/tablatronix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tablatronix/subscriptions","organizations_url":"https://api.github.com/users/tablatronix/orgs","repos_url":"https://api.github.com/users/tablatronix/repos","events_url":"https://api.github.com/users/tablatronix/events{/privacy}","received_events_url":"https://api.github.com/users/tablatronix/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/labels/Documentation","name":"Documentation","color":"ffc40d"},{"url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/labels/Feature","name":"Feature","color":"4bb14b"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/milestones/2","labels_url":"https://api.github.com/repos/GetSimpleCMS/GetSimpleCMS/milestones/2/labels","id":230160,"number":2,"title":"v3.4.0","description":"","creator":{"login":"tablatronix","id":807787,"avatar_url":"https://avatars.githubusercontent.com/u/807787?v=3","gravatar_id":"","url":"https://api.github.com/users/tablatronix","html_url":"https://github.com/tablatronix","followers_url":"https://api.github.com/users/tablatronix/followers","following_url":"https://api.github.com/users/tablatronix/following{/other_user}","gists_url":"https://api.github.com/users/tablatronix/gists{/gist_id}","starred_url":"https://api.github.com/users/tablatronix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tablatronix/subscriptions","organizations_url":"https://api.github.com/users/tablatronix/orgs","repos_url":"https://api.github.com/users/tablatronix/repos","events_url":"https://api.github.com/users/tablatronix/events{/privacy}","received_events_url":"https://api.github.com/users/tablatronix/received_events","type":"User","site_admin":false},"open_issues":42,"closed_issues":173,"state":"open","created_at":"2012-12-14T17:59:32Z","updated_at":"2015-02-06T03:06:06Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2015-02-05T21:34:57Z","updated_at":"2015-02-06T03:06:06Z","closed_at":null,"body":"Some kind of safemode implementation.\r\n\r\nThis presents several issues, we can only enable safemode if authenticated , as you would not want to allow anyone to disable plugins to bypass security or logging etc.\r\n\r\nBut if there are fatal errors or errors with login hooks, then this won't help at all.\r\n\r\nIf there is a problem logging in then the only way i can think of providing to enable safemode would be gsconfig or a custom file. Or a custom token, but who is going to have that written down or saved somewhere.\r\n\r\nThe biggest issue here is that login_functions are the last thing to load. But we can disable plugins so that might help.\r\n\r\n\r\n### Things that should be shunted in safemode ###\r\n- [x] no plugins are loaded\r\n- [ ] no components are executed\r\n- [ ] pages cannot be saved\r\n- [ ] nothing can be allowed to be saved, especially items with hooks of any kind\r\n\r\n### Things that must be allowed ###\r\n- [x] plugin toggling\r\n- [ ] components saving\r\n- [ ] front end stuff like themes, should be pretty safe\r\n\r\n### undetermined\r\n- [ ] ajax saving\r\n\r\n\r\nBest way to disable this stuff.\r\n\r\nplugins are easy, $load['plugins'] false\r\ndone\r\n\r\ncomponents\r\nnot so sure.\r\nbut with plugins disabled, nothing should really be executing these anyway, at least on the back end\r\n\r\nblocking saving of stuff\r\nper item solutions, or file save intercept, we have filio wrappers now so this is practical\r\n\r\n\r\n\r\n\r\n"}}