Class: Smailr::Model::Mailbox

Inherits:
Sequel::Model
  • Object
show all
Defined in:
lib/smailr/model.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.domain(fqdn) ⇒ Object



54
55
56
# File 'lib/smailr/model.rb', line 54

def self.domain(fqdn)
  Domain[:fqdn => fqdn]
end

.for_address(address) ⇒ Object



58
59
60
61
# File 'lib/smailr/model.rb', line 58

def self.for_address(address)
  localpart, fqdn = address.split('@')
  self[:localpart => localpart, :domain => domain(fqdn)]
end

.for_address!(address) ⇒ Object



63
64
65
66
# File 'lib/smailr/model.rb', line 63

def self.for_address!(address)
  localpart, fqdn = address.split('@')
  find_or_create(:localpart => localpart, :domain => domain(fqdn))
end

Instance Method Details

#aliasesObject



47
48
49
50
51
52
# File 'lib/smailr/model.rb', line 47

def aliases
  Model::Alias.where(
    :dstlocalpart => self.localpart,
    :dstdomain   => self.domain.fqdn
  )
end

#password=(clear) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# File 'lib/smailr/model.rb', line 32

def password=(clear)
  crypted = BCrypt::Password.create(
    clear,
    cost: BCrypt::Engine::DEFAULT_COST,
    salt: BCrypt::Engine.generate_salt
  )

  self[:password_scheme] = '{BLF-CRYPT}'
  self[:password] = crypted
end


43
44
45
# File 'lib/smailr/model.rb', line 43

def rm_related
  self.aliases.destroy
end