summaryrefslogtreecommitdiff
path: root/app/models/anonymous_service_level.rb
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-04-18 11:55:40 +0200
committerAzul <azul@leap.se>2014-04-18 12:30:52 +0200
commit9216ab8252246a263c5d17f6755a7d3887145f94 (patch)
tree1fc3af536bb621c175640eeed9dbedd9b99876a4 /app/models/anonymous_service_level.rb
parent40dfa63aa6fc7aa3614f2a7952d088d8ff067f70 (diff)
change service level configuration strategy
The changes to the configuration required some non minor changes to the platform and also added some flexibility we don't require yet - and thus some new possibilities for errors. So instead we still use the allow_..._certs and ..._cert_prefix options. They basically provide the framework in which service levels can operate. The service level configuration will not include the cert prefix anymore. It only states if the service level is rate limited or not. This avoids conflicts between the two configuration options. I also removed the anonymous service level entirely. It was also turning a boolean decision (do we provide anonymous eip or not) into something way more complex. Instead I added the AnonymousServiceLevel class to handle the corner cases for people who are not logged in. Furthermore i renamed the UnauthenticatedUser to AnonymousUser so it matches the Anonymous Service Level nicely. It's also shorter and more intuitive.
Diffstat (limited to 'app/models/anonymous_service_level.rb')
-rw-r--r--app/models/anonymous_service_level.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/models/anonymous_service_level.rb b/app/models/anonymous_service_level.rb
new file mode 100644
index 0000000..c51ce9e
--- /dev/null
+++ b/app/models/anonymous_service_level.rb
@@ -0,0 +1,31 @@
+class AnonymousServiceLevel
+
+ delegate :to_json, to: :config_hash
+
+ def cert_prefix
+ if APP_CONFIG[:allow_limited_certs]
+ APP_CONFIG[:limited_cert_prefix]
+ else
+ APP_CONFIG[:unlimited_cert_prefix]
+ end
+ end
+
+ def description
+ if APP_CONFIG[:allow_anonymous_certs]
+ "anonymous access to the VPN"
+ else
+ "please login to access our services"
+ end
+ end
+
+ protected
+
+ def config_hash
+ { name: "anonymous",
+ description: description,
+ cost: 0,
+ eip_rate_limit: APP_CONFIG[:allow_limited_certs]
+ }
+ end
+
+end