prey/gdpr_rails

View on GitHub
app/controllers/policy_manager/application_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
module PolicyManager
  class ApplicationController < ActionController::Base

    if defined? Doorman
      include Doorman::Controller
    end

    before_action :user_authenticated?
    before_action :set_language

    def allow_admins
      return redirect_to pending_user_terms_path unless Config.is_admin?(current_user)
    end

    def doc
      require "redcarpet"
      @markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true, fenced_code_blocks: true)
      lines = File.open( PolicyManager::Engine.root.join("README.md")).readlines
      @html = @markdown.render(lines.join(""))
      render "policy_manager/doc"
      #render inline: html, layout: "policy_manager/application"
    end

    def user_authenticated?
      if !current_user
        render :file => "policy_manager/401.erb", 
        :layout => "policy_manager/blank", 
        :status => :unauthorized
      end
    end

    def set_language
      I18n.locale = Config.user_language(current_user)
    end

    def current_user
      @_current_user ||=  super || (Config.has_different_admin_user_resource? && admin_user)
    end

    def admin_user
      self.send("current_#{Config.admin_user_resource.name.underscore}")
    end

    protect_from_forgery with: :exception
  end
end