manageiq-password 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 2d3819482dabaf189238380c5a9a3f601dc8d5014b0d65c314535c5b8de8c61c
4
- data.tar.gz: fa0af27e00727164700cf625267a48324187e8a21e5cff34adfaabffef76bee0
2
+ SHA1:
3
+ metadata.gz: 1eba2adf883b719e5de3e9f5d5161f2e40f40330
4
+ data.tar.gz: 4f20ffe2f0bd6995145737d85ce3a0a444eba276
5
5
  SHA512:
6
- metadata.gz: be829301516f7d0003daed0247f093d5b70026b0101c9326c4f46ad16a14d774766a7109bfcc0ce3e57db5afd82286ec9211f12ee3710571cad61366c4a2bd4f
7
- data.tar.gz: bdee9e6f778999408cf4b266005a121ffd72689d790a41eedb5d43aaa6318c002c7c586f75cd4b401b349df53b03e2e12dab59c5d919fdb6a16c2f301245dc4b
6
+ metadata.gz: 02be3c11b09fa84571da0a682460e8c891516248b58eb3c4c079df59a5248ebdefb0a4dc5025e635ea5d380e0690068e1467ac71afebba2cc6d75924602dcf02
7
+ data.tar.gz: b0f2f855b9ad52d3c0eadcffb9bdb16271d3af9e745589ab9ea739b17c89fa309a4bef2782979dbace7af4bd5e2e1a4fa281c9e37c3188ea5f564f758ca7b1e6
data/Gemfile CHANGED
@@ -1,6 +1,4 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
3
  # Specify your gem's dependencies in manageiq-password.gemspec
6
4
  gemspec
data/bin/console CHANGED
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require "bundler/setup"
4
- require "manageiq/password"
4
+ require "manageiq-password"
5
+
6
+ ManageIQ::Password.key_root = File.expand_path("../spec/support", __dir__)
5
7
 
6
8
  # You can add fixtures and/or initialization code here to make experimenting
7
9
  # with your gem easier. You can also use a different console, if you like.
@@ -0,0 +1 @@
1
+ require "manageiq/password"
@@ -0,0 +1,55 @@
1
+ module ManageIQ
2
+ class Password
3
+ module PasswordMixin
4
+ def self.included(other)
5
+ other.extend(ClassMethods)
6
+
7
+ other.class_attribute :encrypted_columns
8
+ other.encrypted_columns = []
9
+ end
10
+
11
+ module ClassMethods
12
+ def encrypt_column(column)
13
+ # Given a column of "password", create 4 instance methods:
14
+ # password : Get the password in plain text
15
+ # password= : Set the password in plain text
16
+ # password_encrypted : Get the password in cryptext
17
+ # password_encrypted= : Set the password in cryptext
18
+
19
+ encrypted_columns << column.to_s
20
+ encrypted_columns << "#{column}_encrypted"
21
+
22
+ mod = generated_methods_for_password_mixin
23
+
24
+ mod.send(:define_method, column) do
25
+ val = send("#{column}_encrypted")
26
+ (val.nil? || val.empty?) ? val : MiqPassword.decrypt(val)
27
+ end
28
+
29
+ mod.send(:define_method, "#{column}=") do |val|
30
+ val = MiqPassword.try_encrypt(val) unless val.nil? || val.empty?
31
+ send("#{column}_encrypted=", val)
32
+ end
33
+
34
+ mod.send(:define_method, "#{column}_encrypted") do
35
+ read_attribute(column)
36
+ end
37
+
38
+ mod.send(:define_method, "#{column}_encrypted=") do |val|
39
+ write_attribute(column, val)
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def generated_methods_for_password_mixin
46
+ @generated_methods_for_password_mixin ||= begin
47
+ mod = const_set(:GeneratedMethodsForPasswordMixin, Module.new)
48
+ include mod
49
+ mod
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,5 +1,5 @@
1
1
  module ManageIQ
2
2
  class Password
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0".freeze
4
4
  end
5
5
  end
@@ -1,4 +1,3 @@
1
-
2
1
  lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "manageiq/password/version"
@@ -19,7 +18,7 @@ Gem::Specification.new do |spec|
19
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
19
  spec.require_paths = ["lib"]
21
20
 
22
- spec.add_development_dependency "bundler", "~> 1.16"
21
+ spec.add_development_dependency "bundler"
23
22
  spec.add_development_dependency "rake", "~> 10.0"
24
23
  spec.add_development_dependency "rspec", "~> 3.0"
25
24
  spec.add_development_dependency "simplecov"
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-password
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Authors
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-11-08 00:00:00.000000000 Z
11
+ date: 2019-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -86,7 +86,9 @@ files:
86
86
  - Rakefile
87
87
  - bin/console
88
88
  - bin/setup
89
+ - lib/manageiq-password.rb
89
90
  - lib/manageiq/password.rb
91
+ - lib/manageiq/password/password_mixin.rb
90
92
  - lib/manageiq/password/version.rb
91
93
  - manageiq-password.gemspec
92
94
  homepage: https://github.com/ManageIQ/manageiq-password
@@ -109,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
111
  version: '0'
110
112
  requirements: []
111
113
  rubyforge_project:
112
- rubygems_version: 2.7.6
114
+ rubygems_version: 2.6.14.3
113
115
  signing_key:
114
116
  specification_version: 4
115
117
  summary: A simple encryption util for storing passwords in a database.