1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- class ApiController < ActionController::Base
- include AuthenticationHelper
- before_action :api_require_authentication!, except: [:status]
- def status
- @message = "Ok"
- render 'api/ok'
- end
- protected
- def api_require_authentication!
- return if is_logged_in?
- head :unauthorized
- end
- def api_require_admin!
- return if current_person&.is_admin?
- @message = I18n.t('authentication.admin_required')
- render 'api/error', status: :forbidden
- end
-
-
-
- def api_auth_group_token
- words = request.authorization.split(' ')
- head :unauthorized unless words[0].casecmp('group').zero?
- @group = Group.find_by api_token: words[1]
- head :unauthorized unless @group
- end
-
- def require_membership!
- return if current_person&.groups.include?(@group) || current_person&.is_admin?
- @message = I18n.t('authentication.membership_required')
- render 'api/error', status: :forbidden
- end
- end
|