class ApplicationController < ActionController::Base
include SessionPersistence
- # check_authorization
protect_from_forgery :with => :exception
# don't allow access to any auth-requiring part of the site unless
# the new CTs have been seen (and accept/decline chosen).
elsif !current_user.terms_seen && flash[:skip_terms].nil?
- flash[:notice] = t "user.terms.you need to accept or decline"
+ flash[:notice] = t "users.terms.you need to accept or decline"
if params[:referer]
redirect_to :controller => "users", :action => "terms", :referer => params[:referer]
else
end
def current_ability
- Ability.new(current_user).merge(granted_capabily)
- end
-
- def granted_capabily
- Capability.new(current_user, current_token)
+ # Add in capabilities from the oauth token if it exists and is a valid access token
+ if Authenticator.new(self, [:token]).allow?
+ Ability.new(current_user).merge(Capability.new(current_token))
+ else
+ Ability.new(current_user)
+ end
end
def deny_access(_exception)
- if current_user
+ if current_token
set_locale
report_error t("oauth.permissions.missing"), :forbidden
+ elsif current_user
+ set_locale
+ report_error t("application.permission_denied"), :forbidden
+ elsif request.get?
+ redirect_to :controller => "users", :action => "login", :referer => request.fullpath
else
- require_user
+ head :forbidden
end
end