Class: Git::Webby::Htpasswd

Inherits:
Object
  • Object
show all
Defined in:
lib/git/webby.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(file) {|_self| ... } ⇒ Htpasswd

Returns a new instance of Htpasswd.

Yields:

  • (_self)

Yield Parameters:



127
128
129
130
131
# File 'lib/git/webby.rb', line 127

def initialize(file)
  require 'webrick/httpauth/htpasswd'
  @handler = WEBrick::HTTPAuth::Htpasswd.new(file)
  yield self if block_given?
end

Instance Method Details

#authenticated?(username, password) ⇒ Boolean

Returns:

  • (Boolean)


142
143
144
145
146
# File 'lib/git/webby.rb', line 142

def authenticated?(username, password)
  self.find username do |crypted, salt|
    crypted && salt && crypted == password.crypt(salt)
  end
end

#create(username, password) ⇒ Object Also known as: update



148
149
150
# File 'lib/git/webby.rb', line 148

def create(username, password)
  @handler.set_passwd(nil, username, password)
end

#destroy(username) ⇒ Object



153
154
155
# File 'lib/git/webby.rb', line 153

def destroy(username)
  @handler.delete_passwd(nil, username)
end

#find(username) ⇒ Object

:yield: password, salt



133
134
135
136
137
138
139
140
# File 'lib/git/webby.rb', line 133

def find(username) #:yield: password, salt
  password = @handler.get_passwd(nil, username, false)
  if block_given?
    yield password ? [password, password[0,2]] : [nil, nil]
  else
    password
  end
end

#include?(username) ⇒ Boolean

Returns:

  • (Boolean)


157
158
159
# File 'lib/git/webby.rb', line 157

def include?(username)
  users.include? username
end

#sizeObject



161
162
163
# File 'lib/git/webby.rb', line 161

def size
  users.size
end

#write!Object



165
166
167
# File 'lib/git/webby.rb', line 165

def write!
  @handler.flush
end