- # Utility methods to make the controller filter methods easier to read and write.
- def require_allow_read_prefs
- require_capability(:allow_read_prefs)
- end
- def require_allow_write_prefs
- require_capability(:allow_write_prefs)
- end
- def require_allow_write_diary
- require_capability(:allow_write_diary)
- end
- def require_allow_write_api
- require_capability(:allow_write_api)
-
- if REQUIRE_TERMS_AGREED and @user.terms_agreed.nil?
- report_error "You must accept the contributor terms before you can edit.", :forbidden
- return false
- end
- end
- def require_allow_read_gpx
- require_capability(:allow_read_gpx)
- end
- def require_allow_write_gpx
- require_capability(:allow_write_gpx)
- end
-
- ##
- # require that the user is a moderator, or fill out a helpful error message
- # and return them to the blocks index.
- def require_moderator
- unless @user.moderator?
- if request.get?
- flash[:error] = t('application.require_moderator.not_a_moderator')
- redirect_to :action => 'index'
+ def check_database_readable(need_api: false)
+ if Settings.status == "database_offline" || (need_api && Settings.status == "api_offline")
+ if request.xhr?
+ report_error "Database offline for maintenance", :service_unavailable