mbbx6spp-gitauth 0.0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +661 -0
- data/README.rdoc +141 -0
- data/USAGE +70 -0
- data/bin/gitauth +261 -0
- data/bin/gitauth-shell +30 -0
- data/config.ru +16 -0
- data/lib/gitauth/apache_authentication.rb +64 -0
- data/lib/gitauth/auth_setup_middleware.rb +53 -0
- data/lib/gitauth/client.rb +95 -0
- data/lib/gitauth/command.rb +101 -0
- data/lib/gitauth/group.rb +87 -0
- data/lib/gitauth/message.rb +69 -0
- data/lib/gitauth/repo.rb +155 -0
- data/lib/gitauth/saveable_class.rb +54 -0
- data/lib/gitauth/user.rb +135 -0
- data/lib/gitauth/web_app.rb +314 -0
- data/lib/gitauth.rb +101 -0
- data/public/gitauth.css +316 -0
- data/public/gitauth.js +17 -0
- data/public/jquery.js +19 -0
- data/resources/messages.yml +9 -0
- data/views/auth_setup.erb +27 -0
- data/views/clone_repo.erb +24 -0
- data/views/group.erb +24 -0
- data/views/index.erb +88 -0
- data/views/layout.erb +27 -0
- data/views/repo.erb +57 -0
- data/views/user.erb +51 -0
- metadata +196 -0
data/views/index.erb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
<% if params[:repo_name] %>
|
2
|
+
<%= erb :clone_repo, :layout => false %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div class="section">
|
6
|
+
<h2>Repositories <a href="#" onclick="showForm('repo'); return false;" title="Add a new repository" id="add-repo-link">[+]</a></h2>
|
7
|
+
<form id="add-repo" action="<%=u "/repos" %>" method="post" class="hidden">
|
8
|
+
<div class="row">
|
9
|
+
<label for="repo_name">Name:</label>
|
10
|
+
<input type="text" name="repo[name]" id="repo_name" />
|
11
|
+
</div>
|
12
|
+
<div class="row">
|
13
|
+
<label for="repo_path">Path: (optional)</label>
|
14
|
+
<input type="text" name="repo[path]" id="repo_path" />
|
15
|
+
</div>
|
16
|
+
<div class="row">
|
17
|
+
<label for="repo_make_empty">Initial Commit?</label>
|
18
|
+
<input type="checkbox" name="repo[make_empty]" id="repo_make_empty" value="1" />
|
19
|
+
</div>
|
20
|
+
<div class="buttons">
|
21
|
+
<input type="submit" value="Add Repository" /> or <a href="#" onclick="hideForm('repo'); return false;">Cancel</a>
|
22
|
+
</div>
|
23
|
+
</form>
|
24
|
+
<ul id="repositories">
|
25
|
+
<% @repos.each do |r| %>
|
26
|
+
<li>
|
27
|
+
<span class="tag repo">repo</span>
|
28
|
+
<%= h(r.name) %> -
|
29
|
+
<%= link_to "view", "/repos/#{URI.encode(r.name)}" %> or
|
30
|
+
<%= delete_link "remove", "/repos/#{URI.encode(r.name)}" %>
|
31
|
+
</li>
|
32
|
+
<% end %>
|
33
|
+
</ul>
|
34
|
+
</div>
|
35
|
+
|
36
|
+
<div class="section">
|
37
|
+
<h2>Users <a href="#" onclick="showForm('user'); return false;" title="Add a new user" id="add-user-link">[+]</a></h2>
|
38
|
+
<form id="add-user" action="<%=u "/users" %>" method="post" class="hidden">
|
39
|
+
<div class="row">
|
40
|
+
<label for="user_name">Name:</label>
|
41
|
+
<input type="text" name="user[name]" id="user_name" />
|
42
|
+
</div>
|
43
|
+
<div class="row">
|
44
|
+
<label for="user_admin">Admin?</label>
|
45
|
+
<input type="checkbox" name="user[admin]" id="user_admin" value="1" />
|
46
|
+
</div>
|
47
|
+
<div class="row">
|
48
|
+
<label for="user_key">Public Key:</label>
|
49
|
+
<textarea name="user[key]" id="user_key" rows="3" cols="38"></textarea>
|
50
|
+
</div>
|
51
|
+
<div class="buttons">
|
52
|
+
<input type="submit" value="Add User" /> or <a href="#" onclick="hideForm('user'); return false;">Cancel</a>
|
53
|
+
</div>
|
54
|
+
</form>
|
55
|
+
<ul id="users">
|
56
|
+
<% @users.each do |u| %>
|
57
|
+
<li>
|
58
|
+
<span class="tag <%= u.admin? ? "admin" : "user" %>"><%= u.admin? ? "admin" : "user" %></span>
|
59
|
+
<%= h(u.name) %> -
|
60
|
+
<%= link_to "view", "/users/#{URI.encode(u.name)}" %> or
|
61
|
+
<%= delete_link "remove", "/users/#{URI.encode(u.name.strip)}" %>
|
62
|
+
</li>
|
63
|
+
<% end %>
|
64
|
+
</ul>
|
65
|
+
</div>
|
66
|
+
|
67
|
+
<div class="section">
|
68
|
+
<h2>Groups <a href="#" onclick="showForm('group'); return false;" title="Add a new group" id="add-group-link">[+]</a></h2>
|
69
|
+
<form id="add-group" action="<%=u "/groups" %>" method="post" class="hidden">
|
70
|
+
<div class="row">
|
71
|
+
<label for="group_name">Name:</label>
|
72
|
+
<input type="text" name="group[name]" id="group_name" />
|
73
|
+
</div>
|
74
|
+
<div class="buttons">
|
75
|
+
<input type="submit" value="Add Group" /> or <a href="#" onclick="hideForm('group'); return false;">Cancel</a>
|
76
|
+
</div>
|
77
|
+
</form>
|
78
|
+
<ul id="groups">
|
79
|
+
<% @groups.each do |g| %>
|
80
|
+
<li>
|
81
|
+
<span class="tag group">group</span>
|
82
|
+
<%= h(g.to_s) %> -
|
83
|
+
<%= link_to "view", "/groups/#{URI.encode(g.name.strip)}" %> or
|
84
|
+
<%= delete_link "remove", "/groups/#{URI.encode(g.name.strip)}" %>
|
85
|
+
</li>
|
86
|
+
<% end %>
|
87
|
+
</ul>
|
88
|
+
</div>
|
data/views/layout.erb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html lang='en-US' xml:lang='en-US' xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
+
<head>
|
4
|
+
<title>GitAuth</title>
|
5
|
+
<link rel="stylesheet" type="text/css" href="<%= u "/gitauth.css" %>" media="screen" />
|
6
|
+
<script type="text/javascript" src="<%= u "/jquery.js" %>"></script>
|
7
|
+
<script type="text/javascript" src="<%= u "/gitauth.js" %>"></script>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
<div id="container">
|
11
|
+
<div id="header">
|
12
|
+
<h1><%= link_to "GitAuth Admin Area", "/" %></h1>
|
13
|
+
</div>
|
14
|
+
<% if params[:message] %>
|
15
|
+
<div class="message">
|
16
|
+
<%=h params[:message] %>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
19
|
+
<div id="contents">
|
20
|
+
<%= yield %>
|
21
|
+
</div>
|
22
|
+
<div id="footer">
|
23
|
+
Powered by GitAuth v<%= GitAuth.version %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</body>
|
27
|
+
</html>
|
data/views/repo.erb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
<div class="view">
|
2
|
+
<h2>Viewing Repository: <%=h @repo.name %></h2>
|
3
|
+
|
4
|
+
<h3>Members with Read / Write Access:</h3>
|
5
|
+
<ul>
|
6
|
+
<% if @all_access.empty? %>
|
7
|
+
<li class="empty">No users or groups have predefined read and write access</li>
|
8
|
+
<% end %>
|
9
|
+
<% @all_access.each do |member| %>
|
10
|
+
<li><%= auto_link member %>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
|
14
|
+
<h3>Members with Write Access:</h3>
|
15
|
+
<ul>
|
16
|
+
<% if @write_only.empty? %>
|
17
|
+
<li class="empty">No users or groups have predefined write-only access</li>
|
18
|
+
<% end %>
|
19
|
+
<% @write_only.each do |member| %>
|
20
|
+
<li><%= auto_link member %>
|
21
|
+
<% end %>
|
22
|
+
</ul>
|
23
|
+
|
24
|
+
<h3>Members with Read Access:</h3>
|
25
|
+
<ul>
|
26
|
+
<% if @read_only.empty? %>
|
27
|
+
<li class="empty">No users or groups have predefined read-only access</li>
|
28
|
+
<% end %>
|
29
|
+
<% @read_only.each do |member| %>
|
30
|
+
<li><%= auto_link member %>
|
31
|
+
<% end %>
|
32
|
+
</ul>
|
33
|
+
|
34
|
+
<form action="<%=u "/repos/#{URI.encode(@repo.name)}" %>" method="post">
|
35
|
+
<div class="row">
|
36
|
+
<label for="repo_all"> Read & Write Access:</label>
|
37
|
+
<textarea name="repo[all]" id="repo_all" cols="38" rows="5"><%= @all_access.join("\n") %></textarea>
|
38
|
+
<p class="hint">One user / group per line, groups starting with @'s</p>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="row">
|
42
|
+
<label for="repo_write"> Write-Only Access:</label>
|
43
|
+
<textarea name="repo[write]" id="repo_write" cols="38" rows="5"><%= @write_only.join("\n") %></textarea>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="row">
|
47
|
+
<label for="repo_read"> Read-Only Access:</label>
|
48
|
+
<textarea name="repo[read]" id="repo_read" cols="38" rows="5"><%= @read_only.join("\n") %></textarea>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<div class="buttons">
|
52
|
+
<input type="submit" value="Update Permissions" /> or <%= link_to "Go Back", "/" %>
|
53
|
+
</div>
|
54
|
+
</form>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
</div>
|
data/views/user.erb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
<div class="view">
|
2
|
+
<h2>Viewing User: <%=h @user %></h2>
|
3
|
+
|
4
|
+
<h3>Groups (Direct):</h3>
|
5
|
+
<ul>
|
6
|
+
<% if @groups.empty? %>
|
7
|
+
<li class="empty">This user isn't a member of any groups.</li>
|
8
|
+
<% end %>
|
9
|
+
<% @groups.each do |group| %>
|
10
|
+
<li><%= auto_link group.to_s %>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
|
14
|
+
<h3>Repositories with Read & Write Access</h3>
|
15
|
+
<ul>
|
16
|
+
<% if @user.admin? %>
|
17
|
+
<li>This user can read ALL repositories as an admin.</li>
|
18
|
+
<% else %>
|
19
|
+
<% if @all_access.empty? %>
|
20
|
+
<li class="empty">This user doesn't have read and write access to any repositories</li>
|
21
|
+
<% end %>
|
22
|
+
<% @all_access.each do |repo| %>
|
23
|
+
<li><%= link_to h(repo.name), "/repos/#{URI.encode(repo.name)}" %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
</ul>
|
27
|
+
|
28
|
+
<% if !@user.admin? %>
|
29
|
+
|
30
|
+
<h3>Repositories with Write-Only Access</h3>
|
31
|
+
<ul>
|
32
|
+
<% if @write_only.empty? %>
|
33
|
+
<li class="empty">This user doesn't have write-only to any repositories</li>
|
34
|
+
<% end %>
|
35
|
+
<% @write_only.each do |repo| %>
|
36
|
+
<li><%= link_to h(repo.name), "/repos/#{URI.encode(repo.name)}" %>
|
37
|
+
<% end %>
|
38
|
+
</ul>
|
39
|
+
|
40
|
+
<h3>Repositories with Read-only Access</h3>
|
41
|
+
<ul>
|
42
|
+
<% if @read_only.empty? %>
|
43
|
+
<li class="empty">This user doesn't have read-only to any repositories</li>
|
44
|
+
<% end %>
|
45
|
+
<% @read_only.each do |repo| %>
|
46
|
+
<li><%= link_to h(repo.name), "/repos/#{URI.encode(repo.name)}" %>
|
47
|
+
<% end %>
|
48
|
+
</ul>
|
49
|
+
<% end %>
|
50
|
+
|
51
|
+
</div>
|
metadata
ADDED
@@ -0,0 +1,196 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mbbx6spp-gitauth
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 2
|
10
|
+
version: 0.0.5.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Darcy Laycock
|
14
|
+
- Susan Potter
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
|
19
|
+
date: 2009-09-30 00:00:00 -05:00
|
20
|
+
default_executable:
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
23
|
+
name: rack
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 0
|
33
|
+
version: "1.0"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: sinatra
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
- 9
|
47
|
+
- 0
|
48
|
+
version: 0.9.0
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: perennial
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
segments:
|
60
|
+
- 1
|
61
|
+
- 0
|
62
|
+
- 0
|
63
|
+
- 1
|
64
|
+
version: 1.0.0.1
|
65
|
+
type: :runtime
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: shoulda
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 2
|
77
|
+
- 0
|
78
|
+
- 0
|
79
|
+
version: 2.0.0
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: redgreen
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
segments:
|
91
|
+
- 1
|
92
|
+
- 0
|
93
|
+
- 0
|
94
|
+
version: 1.0.0
|
95
|
+
type: :development
|
96
|
+
version_requirements: *id005
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rr
|
99
|
+
prerelease: false
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
segments:
|
106
|
+
- 0
|
107
|
+
- 10
|
108
|
+
- 0
|
109
|
+
version: 0.10.0
|
110
|
+
type: :development
|
111
|
+
version_requirements: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rack-test
|
114
|
+
prerelease: false
|
115
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
segments:
|
121
|
+
- 0
|
122
|
+
version: "0"
|
123
|
+
type: :development
|
124
|
+
version_requirements: *id007
|
125
|
+
description: A library to enable per user / group authentication on a read / write basis for git repositories running over ssh
|
126
|
+
email: sutto@sutto.net
|
127
|
+
executables:
|
128
|
+
- gitauth
|
129
|
+
- gitauth-shell
|
130
|
+
extensions: []
|
131
|
+
|
132
|
+
extra_rdoc_files: []
|
133
|
+
|
134
|
+
files:
|
135
|
+
- LICENSE
|
136
|
+
- README.rdoc
|
137
|
+
- USAGE
|
138
|
+
- bin/gitauth
|
139
|
+
- bin/gitauth-shell
|
140
|
+
- config.ru
|
141
|
+
- lib/gitauth.rb
|
142
|
+
- lib/gitauth/apache_authentication.rb
|
143
|
+
- lib/gitauth/auth_setup_middleware.rb
|
144
|
+
- lib/gitauth/client.rb
|
145
|
+
- lib/gitauth/command.rb
|
146
|
+
- lib/gitauth/group.rb
|
147
|
+
- lib/gitauth/message.rb
|
148
|
+
- lib/gitauth/repo.rb
|
149
|
+
- lib/gitauth/saveable_class.rb
|
150
|
+
- lib/gitauth/user.rb
|
151
|
+
- lib/gitauth/web_app.rb
|
152
|
+
- public/gitauth.css
|
153
|
+
- public/gitauth.js
|
154
|
+
- public/jquery.js
|
155
|
+
- resources/messages.yml
|
156
|
+
- views/auth_setup.erb
|
157
|
+
- views/clone_repo.erb
|
158
|
+
- views/group.erb
|
159
|
+
- views/index.erb
|
160
|
+
- views/layout.erb
|
161
|
+
- views/repo.erb
|
162
|
+
- views/user.erb
|
163
|
+
has_rdoc: true
|
164
|
+
homepage: http://brownbeagle.com.au/
|
165
|
+
licenses: []
|
166
|
+
|
167
|
+
post_install_message:
|
168
|
+
rdoc_options: []
|
169
|
+
|
170
|
+
require_paths:
|
171
|
+
- lib
|
172
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
segments:
|
178
|
+
- 0
|
179
|
+
version: "0"
|
180
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
181
|
+
none: false
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
segments:
|
186
|
+
- 0
|
187
|
+
version: "0"
|
188
|
+
requirements: []
|
189
|
+
|
190
|
+
rubyforge_project:
|
191
|
+
rubygems_version: 1.3.7
|
192
|
+
signing_key:
|
193
|
+
specification_version: 3
|
194
|
+
summary: An authentication manager for Git repositories served over SSH. Includes one logic fix and one environmental fix that will help the vast majority of Ruby installations by Susan Potter available on the mbbx6spp fork on GitHub.
|
195
|
+
test_files: []
|
196
|
+
|