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.



97
98
99
100
101
102
103
# File 'examples/example.rb', line 97

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)


119
120
121
122
123
# File 'examples/example.rb', line 119

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:



129
130
131
132
133
134
135
# File 'examples/example.rb', line 129

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