summaryrefslogtreecommitdiff
path: root/certs/app/controllers
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2013-03-06 01:34:16 -0800
committerelijah <elijah@riseup.net>2013-03-06 01:34:16 -0800
commit886585a0f673e0ea70abb99504ff9c70180361d5 (patch)
tree38ba46eb1eb277410a96a1cb3da70715fdfe8d6c /certs/app/controllers
parentf0ffc65aa38473ef280ed80526691d588f14c8de (diff)
certs - changed the logic of free/paid certs to be limited/unlimited.
Diffstat (limited to 'certs/app/controllers')
-rw-r--r--certs/app/controllers/certs_controller.rb43
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