Sha256: 0260690f0edd085d5b0a2896c0efb995530ea58d79f36395f10c125b06f47be7

Contents?: true

Size: 1.56 KB

Versions: 3

Compression:

Stored size: 1.56 KB

Contents

# -*- encoding : utf-8 -*-
class Card; module Set; module Right; module Email; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_standard/set/right/email.rb ~~~~~~~~~~~
#event :
include All::Permissions::Accounts

view :raw do |args|
  case
  when card.real?          ; card.content
  when card.left.account   ; card.left.account.email #this supports legacy behavior (should be moved to User+*email+*type plus right)
  else ''
  end
end

view :core, :raw

event :validate_email, after: :approve, on: :save do
  if content.present? && content !~ /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
    errors.add :content, 'must be valid address'
  end
end

event :validate_unique_email, after: :validate_email, on: :save do
  if content.present?
    Auth.as_bot do
      wql = { right_id: Card::EmailID, eq: content }
      wql[:not] = { id: id } if id
      if Card.search( wql ).first
        errors.add :content, 'must be unique'
      end
    end
  end
end

event :downcase_email, before: :approve, on: :save do
  if content and content != content.downcase
    self.content = content.downcase
  end
end

def email_required?
  !built_in?
end

def ok_to_read
  if is_own_account? or Auth.always_ok?
    true
  else
    deny_because "viewing email is restricted to administrators and account holders"
  end
end

def is_own_account?
  cardname.parts[0].to_name.key == Auth.as_card.cardname.key
end

# ~~~~~~~~~~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/05_standard/set/right/email.rb ~~~~~~~~~~~
end;end;end;end;

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
card-1.16.9 tmpsets/set/mod007-05_standard/right/email.rb
card-1.16.8 tmpsets/set/mod007-05_standard/right/email.rb
card-1.16.7 tmpsets/set/mod007-05_standard/right/email.rb