diff options
Diffstat (limited to 'certs/app/controllers/certs_controller.rb')
-rw-r--r-- | certs/app/controllers/certs_controller.rb | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/certs/app/controllers/certs_controller.rb b/certs/app/controllers/certs_controller.rb index 977e03e..62ef3fd 100644 --- a/certs/app/controllers/certs_controller.rb +++ b/certs/app/controllers/certs_controller.rb @@ -1,16 +1,51 @@ class CertsController < ApplicationController - before_filter :logged_in_or_free_certs + before_filter :login_if_required # GET /cert def show - @cert = ClientCertificate.new(free: !logged_in?) + @cert = ClientCertificate.new(:prefix => certificate_prefix) render text: @cert.to_s, content_type: 'text/plain' end protected - def logged_in_or_free_certs - authorize unless APP_CONFIG[:free_certs_enabled] + def login_if_required + authorize unless APP_CONFIG[:allow_anonymous_certs] + end + + # + # this is some temporary logic until we store the service level in the user db. + # + # better logic might look like this: + # + # if logged_in? + # service_level = user.service_level + # elsif allow_anonymous? + # service_level = service_levels[:anonymous] + # else + # service_level = nil + # end + # + # if service_level.bandwidth == 'limited' && allow_limited? + # prefix = limited + # elsif allow_unlimited? + # prefix = unlimited + # else + # prefix = nil + # end + # + def certificate_prefix + if logged_in? + if APP_CONFIG[:allow_unlimited_certs] + APP_CONFIG[:unlimited_cert_prefix] + elsif APP_CONFIG[:allow_limited_certs] + APP_CONFIG[:limited_cert_prefix] + end + elsif !APP_CONFIG[:allow_limited_certs] + APP_CONFIG[:unlimited_cert_prefix] + else + APP_CONFIG[:limited_cert_prefix] + end end end |