Module: Perus::Server::Helpers

Included in:
Form
Defined in:
lib/perus/server/helpers.rb

Instance Method Summary collapse

Instance Method Details

#authorised?Boolean

Returns:

  • (Boolean)


56
57
58
59
60
61
62
63
64
# File 'lib/perus/server/helpers.rb', line 56

def authorised?
    return true if Server.options.auth['username'].empty?
    @auth ||=  Rack::Auth::Basic::Request.new(request.env)
    @auth.provided? && @auth.basic? && @auth.credentials &&
        @auth.credentials == [
            Server.options.auth['username'].to_s,
            Server.options.auth['password'].to_s
        ]
end

#clean_arrows(text) ⇒ Object



38
39
40
# File 'lib/perus/server/helpers.rb', line 38

def clean_arrows(text)
    text.gsub('<', '&lt;').gsub('>', '&gt;')
end

#command_actionsObject



28
29
30
31
# File 'lib/perus/server/helpers.rb', line 28

def command_actions
    commands = Perus::Pinger::Command.subclasses.reject(&:metric?)
    commands.reject(&:abstract?)
end

#command_metricsObject



33
34
35
36
# File 'lib/perus/server/helpers.rb', line 33

def command_metrics
    metrics = Perus::Pinger::Command.subclasses.select(&:metric?)
    metrics.reject(&:abstract?)
end

#escape_quotes(text) ⇒ Object



42
43
44
# File 'lib/perus/server/helpers.rb', line 42

def escape_quotes(text)
    text.to_s.gsub('"', '&quot;')
end

#load_site_informationObject



3
4
5
6
# File 'lib/perus/server/helpers.rb', line 3

def load_site_information
    @site_name = Server.options.site_name
    @groups = Group.all
end


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/perus/server/helpers.rb', line 8

def nav_item(path, name, li = true)
    # when hosted behind a fronting server such as nginx, path_info
    # will start with '/' not url_prefix
    adjusted_path = path
    if path.index(url_prefix) == 0
        adjusted_path = path.sub(url_prefix, '/')
    end

    # admin links are highlighted for sub pages as well as their own
    # top level page. e.g 'groups' matches '/groups/1'
    if adjusted_path.start_with?('/admin/')
        klass = request.path_info.start_with?(adjusted_path) ? 'selected' : ''
    else
        klass = request.path_info == adjusted_path ? 'selected' : ''
    end

    anchor = "<a class=\"#{klass}\" href=\"#{path}\">#{name}</a>"
    li ? "<li>#{anchor}</li>" : anchor
end

#protected!Object



50
51
52
53
54
# File 'lib/perus/server/helpers.rb', line 50

def protected!
    return if authorised?
    headers['WWW-Authenticate'] = 'Basic realm="Restricted Area"'
    halt 401, "Not authorized\n"
end

#url_prefixObject



46
47
48
# File 'lib/perus/server/helpers.rb', line 46

def url_prefix
    Server.options.url_prefix
end