Module: Card::Set::Right::Email

Extended by:
Card::Set
Defined in:
card/tmpsets/set/mod011-card-mod-account/right/email.rb,
card/tmpsets/set/mod010-card-mod-account/right/email.rb

Overview

-- encoding : utf-8 --

Constant Summary

Constants included from Helpers

Helpers::SET_PATTERN_TEST_REGEXP

Constants included from Event::Api

Event::Api::OPTIONS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Card::Set

reset_modules

Methods included from I18nScope

#mod_name, #scope

Methods included from Loader

#clean_empty_module_from_hash, #clean_empty_modules, #extended, #process_base_modules, #register_set

Methods included from Helpers

#method_missing, #num_set_parts, #pattern_code, #respond_to_missing?, #set_name_parts, #shortname, #underscore

Methods included from AdvancedApi

#attachment, #define_set_from_error, #ensure_set, #setting_opts, #stage_method

Methods included from Format

#before, #format, layout_method_name, #view, view_method_name, view_setting_method_name, wrapper_method_name

Methods included from Inheritance

#include_set, #include_set_formats

Methods included from Basket

#abstract_basket, #add_to_basket, #basket, #unshift_basket

Methods included from Trait

#card_accessor, #card_reader, #card_writer, #require_field

Methods included from Event::Api

#event

Class Method Details

.source_locationObject



8
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 8

def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-account/set/right/email.rb"; end

Instance Method Details

#email_required?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 39

def email_required?
  !left.system?
end

#event: downcase_emailObject



34
35
36
37
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 34

event :downcase_email, :prepare_to_validate, on: :save do
  return if !content || content == content.downcase
  self.content = content.downcase
end

#event: validate_emailObject



12
13
14
15
16
17
18
19
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 12

event :validate_email, :validate, on: :save do
  return unless content?

  self.content = content.strip
  return if content.match?(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)

  errors.add :content, tr(:error_invalid_address)
end

#event: validate_unique_emailObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 21

event :validate_unique_email, after: :validate_email, on: :save do
  if content.present?
    Auth.as_bot do
      cql = { right_id: EmailID, eq: content, return: :id }
      cql[:not] = { id: id } if id
      cql_comment = tr(:search_email_duplicate, content: content)
      if Card.search(cql, cql_comment).first
        errors.add :content, tr(:error_not_unique)
      end
    end
  end
end

#ok_to_readObject



43
44
45
46
47
48
49
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 43

def ok_to_read
  if own_email? || Auth.always_ok?
    true
  else
    deny_because tr(:deny_email_restricted)
  end
end

#own_email?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'card/tmpsets/set/mod011-card-mod-account/right/email.rb', line 51

def own_email?
  name.part_names[0].key == Auth.as_card.key
end