gollum-auth 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21e3fcbf6ef454027dd8f5b99eda8fc9ff17305c
4
- data.tar.gz: b21cfd50602573f4333f7943e8675a9b5a2b0b41
3
+ metadata.gz: b7f60571c4203805ec7b26185234617736a60764
4
+ data.tar.gz: 0467e62c694fc7c8680145302abd5227e9ac52d5
5
5
  SHA512:
6
- metadata.gz: 6d6b2b231c7c448a1c4a72f24d329df4e5ae9ca1f28ab2873c50541425a33cd3f702251817a3acae66aa86d75f263cc43f5128101d33c73a11549cf05bcdbf09
7
- data.tar.gz: 0837e90a2b85b1d04a769e05c6ebfadb47bbd0089bc83fdd8f58ccd21b83d01e1226b1cb891c8ee1b00aa2ce172517e100963f74309e270fb31a14c7f19e6920
6
+ metadata.gz: c5fde9348967c6b9b1d657124795873ca80c077868e10548a755ac073df12056b7e368ba44b90b339c037b67a41d26d9085750647ac641d986c3ef166f0810fc
7
+ data.tar.gz: 744eadd845807e179ac0ff69695a167938f82efd109325f0cfdac2daee6126e6d1ebaa2adf703bcf9fc3a7b3efda3f91729addec94760ceed80985140aedc7cc
data/README.md CHANGED
@@ -3,13 +3,15 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/gollum-auth.svg)](https://badge.fury.io/rb/gollum-auth)
4
4
  [![Build Status](https://travis-ci.org/bjoernalbers/gollum-auth.svg?branch=master)](https://travis-ci.org/bjoernalbers/gollum-auth)
5
5
 
6
- `Gollum::Auth` is a Rack-Middleware to add
6
+ [Gollum](https://github.com/gollum/gollum)
7
+ is an excellent Wiki-software.
8
+ But it does not include user authentication (on purpose).
9
+
10
+ `Gollum::Auth` is a Rack-Middleware that add
7
11
  [HTTP Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication)
8
- to
9
- [gollum](https://github.com/gollum/gollum).
10
- This requires users to authenticate in order to change the wiki (create /
11
- edit / delete / rename / revert pages).
12
- Read-only access is permitted by default.
12
+ to gollum.
13
+ With this only authenticated users have access to your wiki.
14
+ Optionally you can allow readonly-access for unauthenticated guests.
13
15
 
14
16
 
15
17
  ## Installation
@@ -43,7 +45,7 @@ require 'gollum/auth' # Don't forget to load the gem!
43
45
  require 'gollum/app'
44
46
 
45
47
  # Define list of authorized users where each must have a "name", "password"
46
- and "email":
48
+ # and "email":
47
49
  users = YAML.load %q{
48
50
  ---
49
51
  - name: Rick Sanchez
@@ -54,9 +56,12 @@ users = YAML.load %q{
54
56
  email: morty@example.com
55
57
  }
56
58
 
57
- # Allow only authenticated users to access and change the wiki.
59
+ # Allow unauthenticated users to read the wiki (disabled by default).
60
+ options = { allow_guests: true }
61
+
62
+ # Allow only authenticated users to change the wiki.
58
63
  # (NOTE: This must be loaded *before* Precious::App!)
59
- use Gollum::Auth, users
64
+ use Gollum::Auth, users, options
60
65
 
61
66
  # That's it. The rest is for gollum only.
62
67
  gollum_path = File.expand_path(File.dirname(__FILE__)) # CHANGE THIS TO POINT TO YOUR OWN WIKI REPO
@@ -1,6 +1,7 @@
1
1
  require 'rack'
2
2
  require 'active_model'
3
3
  require 'gollum/auth/version'
4
+ require 'gollum/auth/request'
4
5
  require 'gollum/auth/user'
5
6
 
6
7
  module Gollum
@@ -10,14 +11,14 @@ module Gollum
10
11
  end
11
12
 
12
13
  class App
13
- def initialize(app, users)
14
+ def initialize(app, users, opts = { })
14
15
  @app = app
15
16
  users.each { |args| User.new(args).save! }
17
+ @opts = { allow_guests: false }.merge(opts)
16
18
  end
17
19
 
18
20
  def call(env)
19
- request = Rack::Request.new(env)
20
- if request.path_info =~ /^\/(create|edit|delete|rename|revert|upload)(\/.*)?$/
21
+ if Request.new(env).needs_authentication?(@opts[:allow_guests])
21
22
  auth = Rack::Auth::Basic::Request.new(env)
22
23
  unless auth.provided? && auth.basic? && valid?(auth.credentials)
23
24
  return [
@@ -0,0 +1,15 @@
1
+ module Gollum::Auth
2
+ class Request < Rack::Request
3
+ def needs_authentication?(allow_guests)
4
+ !allow_guests || is_change_request?
5
+ end
6
+
7
+ private
8
+
9
+ # Returns true if the request includes a path that would result in a change
10
+ # of the wiki.
11
+ def is_change_request?
12
+ !!(path_info =~ /^\/(create|edit|delete|rename|revert|upload)(\/.*)?$/)
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,5 @@
1
1
  module Gollum
2
2
  module Auth
3
- VERSION = '0.2.0'
3
+ VERSION = '0.3.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gollum-auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Björn Albers
@@ -142,6 +142,7 @@ files:
142
142
  - bin/setup
143
143
  - gollum-auth.gemspec
144
144
  - lib/gollum/auth.rb
145
+ - lib/gollum/auth/request.rb
145
146
  - lib/gollum/auth/user.rb
146
147
  - lib/gollum/auth/version.rb
147
148
  homepage: https://github.com/bjoernalbers/gollum-auth
@@ -167,5 +168,5 @@ rubyforge_project:
167
168
  rubygems_version: 2.6.10
168
169
  signing_key:
169
170
  specification_version: 4
170
- summary: gollum-auth-0.2.0
171
+ summary: gollum-auth-0.3.0
171
172
  test_files: []