class Decidim::Verifications::Adapter
Provides a unified interface for direct and deferred authorizations, so they can be used transparently
Attributes
manifest[R]
Public Class Methods
from_collection(collection)
click to toggle source
# File lib/decidim/verifications/adapter.rb, line 27 def self.from_collection(collection) collection.map { |e| from_element(e) } end
from_element(element)
click to toggle source
# File lib/decidim/verifications/adapter.rb, line 31 def self.from_element(element) manifest = Verifications.find_workflow_manifest(element) raise UnregisteredVerificationManifest unless manifest new(manifest) end
new(manifest)
click to toggle source
# File lib/decidim/verifications/adapter.rb, line 39 def initialize(manifest) @manifest = manifest end
Public Instance Methods
admin_root_path()
click to toggle source
Administrational entry point for the verification engine
# File lib/decidim/verifications/adapter.rb, line 81 def admin_root_path raise InvalidDirectVerificationRoute.new(route: "admin_route_path") if manifest.type == "direct" public_send(:"decidim_admin_#{name}").send(:root_path, redirect_params) end
renew_path(redirect_url: nil)
click to toggle source
In the case of renewable authorizations, route to renew an authorization process.
# File lib/decidim/verifications/adapter.rb, line 70 def renew_path(redirect_url: nil) if manifest.type == "direct" decidim_verifications.renew_authorizations_path(redirect_params(handler: name, redirect_url: redirect_url)) else main_engine.send(:renew_authorization_path, redirect_params(redirect_url: redirect_url)) end end
root_path(redirect_url: nil)
click to toggle source
Main entry point for the verification engine
# File lib/decidim/verifications/adapter.rb, line 48 def root_path(redirect_url: nil) if manifest.type == "direct" decidim_verifications.new_authorization_path(redirect_params(handler: name, redirect_url: redirect_url)) else main_engine.send(:root_path, redirect_params(redirect_url: redirect_url)) end end
Private Instance Methods
main_engine()
click to toggle source
# File lib/decidim/verifications/adapter.rb, line 107 def main_engine send("decidim_#{manifest.name}") end
redirect_params(params = {})
click to toggle source
# File lib/decidim/verifications/adapter.rb, line 111 def redirect_params(params = {}) # Could add redirect params if a ActionAuthorizer object was previously set. params.merge(@action_authorizer&.redirect_params || {}) end