Class: Adamantite::Base::Editor::PasswordObjectEditor

Inherits:
Object
  • Object
show all
Includes:
AdamantiteFileUtils
Defined in:
lib/base/editor/password_object_editor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from AdamantiteFileUtils

#delete_pw_file, #get_license_key, #get_master_encrypted_vault_key, #get_master_password_hash, #get_master_password_info, #get_master_password_salt, #get_pw_file, #get_stored_pws, #has_license_key?, #home_dir, #make_password_dir, #make_pwmanager_dir, #master_password_exists?, #password_file, #pw_file, #pw_file_exists?, #pwmanager_dir, #pwmanager_dir_exists?, #pwmanager_tmp_dir, #read_file, #write_pw_to_file, #write_to_file

Constructor Details

#initialize(adamantite, password_object = nil) ⇒ PasswordObjectEditor

initializes a user editor with nil when creating a new user or with an existing user when editing an existing user



17
18
19
20
21
# File 'lib/base/editor/password_object_editor.rb', line 17

def initialize(adamantite, password_object = nil)
  @password_object = password_object || PasswordObject.new
  @adamantite = adamantite
  reset_editable_password_object
end

Instance Attribute Details

#editable_password_objectObject (readonly)

editable_user provides the temporary user object for editing



13
14
15
# File 'lib/base/editor/password_object_editor.rb', line 13

def editable_password_object
  @editable_password_object
end

Instance Method Details

#cancelObject



48
49
50
51
# File 'lib/base/editor/password_object_editor.rb', line 48

def cancel
  reset_editable_password_object
  nil
end

#reset_editable_password_objectObject



23
24
25
26
27
28
29
# File 'lib/base/editor/password_object_editor.rb', line 23

def reset_editable_password_object
  @editable_password_object = PasswordObject.new
  @editable_password_object.website_title = @password_object.website_title
  @editable_password_object.username = @password_object.username
  @editable_password_object.password = @password_object.password
  @editable_password_object.password_confirmation = @password_object.password_confirmation
end

#saveObject

saves editable user data and returns final user to add to DB/File/Array/etc…



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/base/editor/password_object_editor.rb', line 32

def save
  return false unless @password_object.password == @password_object.password_confirmation

  @password_object.website_title = @editable_password_object.website_title
  @password_object.username = @editable_password_object.username
  @password_object.password = @editable_password_object.password
  @password_object.password_confirmation = @editable_password_object.password_confirmation
  @password_object.dir_name = @adamantite.save_password(@password_object.website_title,
                                                        @password_object.username,
                                                        @password_object.password,
                                                        @password_object.password_confirmation)

  @adamantite.delete_password(@password_object.initial_dir_name) if @password_object.initial_dir_name
  @password_object
end