Class: DoorMat::ActivityDownloadRecoveryKey

Inherits:
Activity
  • Object
show all
Defined in:
app/models/door_mat/activity_download_recovery_key.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Activity

hash_token

Class Method Details

.for(actor) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'app/models/door_mat/activity_download_recovery_key.rb', line 4

def self.for(actor)
  # Fail any existing activities
  actor.download_recovery_key_activities.each do |a|
    a.failed!
  end

  activity = self.new
  activity.actor = actor
  activity.notifier = actor
  activity.link_hash = self.hash_token(SecureRandom.uuid)
  activity.started!
end

Instance Method Details

#get_new_tokenObject



21
22
23
24
25
26
27
# File 'app/models/door_mat/activity_download_recovery_key.rb', line 21

def get_new_token
  token = SecureRandom.uuid
  self.link_hash = DoorMat::Activity.hash_token(token)
  self.save!

  token
end

#input_valid?(token) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
# File 'app/models/door_mat/activity_download_recovery_key.rb', line 17

def input_valid?(token)
  DoorMat::Crypto.secure_compare(DoorMat::Activity.hash_token(token.to_s), self.link_hash)
end