brownbeagle-gitauth 0.0.4.0 → 0.0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/bin/gitauth CHANGED
@@ -74,12 +74,13 @@ GitAuth::Application.processing(ARGV) do |a|
74
74
 
75
75
  end
76
76
 
77
- a.controller! :web_app, "Starts the gitauth frontend using the default sintra runner"
77
+ a.controller!(:web_app, "Starts the gitauth frontend using the default sintra runner", :skip_path => true)
78
78
 
79
79
  a.option(:force, "Skip the verification / confirmation part of adding the permissions")
80
80
  a.option(:type, "The type of permissions - one of all, read, write or none. Defaults to all")
81
- full_desc = "Gives a specific user or group the specified permissions to a given repository - pass '-h' for more information"
81
+ full_desc = "Gives a specific user or group the specified permissions to a given repository"
82
82
  a.add("permissions REPOSITORY USER-OR-GROUP", full_desc) do |repo, target, options|
83
+ GitAuth.prepare
83
84
  permissions = options[:type] || 'all'
84
85
 
85
86
  if !%w(all read write none).include? permissions
@@ -100,7 +101,7 @@ GitAuth::Application.processing(ARGV) do |a|
100
101
  puts "Permissions not added, exiting."
101
102
  end
102
103
  end
103
-
104
+
104
105
  a.option(:admin, "Makes a user an admin user")
105
106
  a.add("add-user NAME PATH-TO-PUBLIC-KEY", "Creates a user with a given public key") do |name, ssh_key, options|
106
107
  GitAuth.prepare
@@ -192,4 +193,43 @@ GitAuth::Application.processing(ARGV) do |a|
192
193
  end
193
194
  end
194
195
 
196
+ a.add("show-repo NAME", "Shows information for a repository with a given name") do |name, options|
197
+ GitAuth.prepare
198
+ repo = GitAuth::Repo.get(name)
199
+ die! "Unknown repository '#{repo}'" if repo.blank?
200
+ puts "Repository Name: #{repo.name}"
201
+ puts "Repository Path: #{repo.path}"
202
+ puts "Actual Path: #{repo.real_path}"
203
+ puts "\nRead Permissions:"
204
+ read_perms = repo.permissions.fetch(:read, [])
205
+ read_perms.each { |item| puts " - #{item}" }
206
+ puts " - No read permissions" if read_perms.blank?
207
+ puts "\nWrite Permissions:"
208
+ write_perms = repo.permissions.fetch(:write, [])
209
+ write_perms.each { |item| puts " - #{item}" }
210
+ puts " - No write permissions" if write_perms.blank?
211
+ end
212
+
213
+ a.add("show-group NAME", "Shows information for a group with a given name") do |name, options|
214
+ GitAuth.prepare
215
+ group = GitAuth::Group.get(name)
216
+ die! "Unable to find a group named '#{name}'" if group.blank?
217
+ puts "Group Name: #{group.name}"
218
+ puts "Reference Name: #{group.to_s}"
219
+ puts "\nGroup Members:"
220
+ group.members.each { |member| puts " - #{member}" }
221
+ puts " - This group has no members" if group.members.blank?
222
+ end
223
+
224
+ a.add("show-user NAME", "Shows details for a user with a specific name") do |name, options|
225
+ GitAuth.prepare
226
+ user = GitAuth::User.get(name)
227
+ die! "Unable to find a user named '#{name}'" if user.blank?
228
+ puts "User Name: #{user.name}"
229
+ groups = user.groups
230
+ puts "\nGroups:"
231
+ puts " - This user isn't a member of any groups" if groups.blank?
232
+ groups.each { |g| puts " - #{g.to_s}" }
233
+ end
234
+
195
235
  end
data/lib/gitauth.rb CHANGED
@@ -21,7 +21,7 @@ require 'ostruct'
21
21
 
22
22
  module GitAuth
23
23
 
24
- VERSION = [0, 0, 4, 0]
24
+ VERSION = [0, 0, 4, 1]
25
25
  BASE_DIR = Pathname.new(__FILE__).dirname.join("..").expand_path
26
26
  LIB_DIR = BASE_DIR.join("lib", "gitauth")
27
27
  GITAUTH_DIR = Pathname.new("~/.gitauth/").expand_path
data/lib/gitauth/user.rb CHANGED
@@ -88,6 +88,10 @@ module GitAuth
88
88
  GitAuth::Group.save!
89
89
  end
90
90
 
91
+ def groups
92
+ (Group.all || []).select { |g| g.member?(self) }
93
+ end
94
+
91
95
  def admin?
92
96
  !!@admin
93
97
  end
@@ -121,6 +125,10 @@ module GitAuth
121
125
  end
122
126
  end
123
127
 
128
+ def self.valid_key?(key)
129
+ clean_ssh_key(key).present?
130
+ end
131
+
124
132
  end
125
133
  Users = User # For Backwards Compat.
126
134
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brownbeagle-gitauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.0
4
+ version: 0.0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darcy Laycock
@@ -11,8 +11,37 @@ cert_chain: []
11
11
 
12
12
  date: 2009-09-06 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack-rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "1.0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: sinatra-sinatra
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: Sutto-perennial
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
16
45
  description: A library to enable per user / group authentication on a read / write basis for git repositories running over ssh
17
46
  email: sutto@sutto.net
18
47
  executables:
@@ -25,14 +54,10 @@ extra_rdoc_files: []
25
54
  files:
26
55
  - LICENSE
27
56
  - README.rdoc
28
- - Rakefile
29
57
  - USAGE
30
- - bin
31
58
  - bin/gitauth
32
59
  - bin/gitauth-shell
33
60
  - config.ru
34
- - gitauth.gemspec
35
- - lib
36
61
  - lib/gitauth
37
62
  - lib/gitauth.rb
38
63
  - lib/gitauth/auth_setup_middleware.rb
@@ -45,14 +70,10 @@ files:
45
70
  - lib/gitauth/settings.rb
46
71
  - lib/gitauth/user.rb
47
72
  - lib/gitauth/web_app.rb
48
- - public
49
73
  - public/gitauth.css
50
74
  - public/gitauth.js
51
75
  - public/jquery.js
52
- - resources
53
76
  - resources/messages.yml
54
- - vendor
55
- - views
56
77
  - views/auth_setup.erb
57
78
  - views/clone_repo.erb
58
79
  - views/group.erb
data/Rakefile DELETED
@@ -1,19 +0,0 @@
1
- require 'rake'
2
-
3
- task :gemspec do
4
- require 'rubygems'
5
- require File.join(File.dirname(__FILE__), "lib", "gitauth")
6
- spec = Gem::Specification.new do |s|
7
- s.name = 'gitauth'
8
- s.email = 'sutto@sutto.net'
9
- s.homepage = 'http://brownbeagle.com.au/'
10
- s.authors = ["Darcy Laycock"]
11
- s.version = GitAuth.version
12
- s.summary = "An authentication manager for Git repositories served over SSH"
13
- s.description = "A library to enable per user / group authentication on a read / write basis for git repositories running over ssh"
14
- s.files = (FileList["{bin,lib,public,resources,views}/**/*"].to_a + FileList["*"].to_a).sort
15
- s.executables = FileList["bin/*"].to_a.map { |f| File.basename(f) }
16
- s.platform = Gem::Platform::RUBY
17
- end
18
- File.open("gitauth.gemspec", "w+") { |f| f.puts spec.to_ruby }
19
- end
data/gitauth.gemspec DELETED
@@ -1,28 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{gitauth}
5
- s.version = "0.0.4.0"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Darcy Laycock"]
9
- s.date = %q{2009-09-06}
10
- s.description = %q{A library to enable per user / group authentication on a read / write basis for git repositories running over ssh}
11
- s.email = %q{sutto@sutto.net}
12
- s.executables = ["gitauth", "gitauth-shell"]
13
- s.files = ["LICENSE", "README.rdoc", "Rakefile", "USAGE", "bin", "bin/gitauth", "bin/gitauth-shell", "config.ru", "gitauth.gemspec", "lib", "lib/gitauth", "lib/gitauth.rb", "lib/gitauth/auth_setup_middleware.rb", "lib/gitauth/client.rb", "lib/gitauth/command.rb", "lib/gitauth/group.rb", "lib/gitauth/message.rb", "lib/gitauth/repo.rb", "lib/gitauth/saveable_class.rb", "lib/gitauth/settings.rb", "lib/gitauth/user.rb", "lib/gitauth/web_app.rb", "public", "public/gitauth.css", "public/gitauth.js", "public/jquery.js", "resources", "resources/messages.yml", "vendor", "views", "views/auth_setup.erb", "views/clone_repo.erb", "views/group.erb", "views/index.erb", "views/layout.erb", "views/repo.erb", "views/user.erb"]
14
- s.homepage = %q{http://brownbeagle.com.au/}
15
- s.require_paths = ["lib"]
16
- s.rubygems_version = %q{1.3.2}
17
- s.summary = %q{An authentication manager for Git repositories served over SSH}
18
-
19
- if s.respond_to? :specification_version then
20
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
21
- s.specification_version = 3
22
-
23
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
24
- else
25
- end
26
- else
27
- end
28
- end