Class: Example::Driver

Inherits:
Object
  • Object
show all
Defined in:
examples/example.rb

Overview

The FTP server requires and instance of a driver which can authenticate users and create a file system drivers for a given user. You can use this as a template for creating your own driver.

Instance Method Summary collapse

Constructor Details

#initialize(user, password, account, data_dir, read_only) ⇒ Driver

Your driver’s initialize method can be anything you need. Ftpd does not create an instance of your driver.



113
114
115
116
117
118
119
# File 'examples/example.rb', line 113

def initialize(user, password, , data_dir, read_only)
  @user = user
  @password = password
  @account = 
  @data_dir = data_dir
  @read_only = read_only
end

Instance Method Details

#authenticate(user, password, account) ⇒ Boolean

Return true if the user should be allowed to log in. Depending upon the server’s auth_level, some of these parameters may be nil. A parameter with a nil value is not required for authentication. Here are the parameters that are non-nil for each auth_level:

  • :user (user)

  • :password (user, password)

  • :account (user, password, account)

Parameters:

  • user (String)
  • password (String)
  • account (String)

Returns:

  • (Boolean)


135
136
137
138
139
# File 'examples/example.rb', line 135

def authenticate(user, password, )
  user == @user &&
    (password.nil? || password == @password) &&
    (.nil? ||  == @account)
end

#file_system(user) ⇒ Object

Return the file system to use for a user.

Parameters:

  • user (String)

Returns:



145
146
147
148
149
150
151
# File 'examples/example.rb', line 145

def file_system(user)
  if @read_only
    Ftpd::ReadOnlyDiskFileSystem
  else
    Ftpd::DiskFileSystem
  end.new(@data_dir)
end