ldap_groups_lookup 0.5.0 → 0.6.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
- SHA1:
3
- metadata.gz: f83eab8265b4b37803e067e1309265ec477ae49b
4
- data.tar.gz: 556b6ba805d90d6e0323dd574c9744c14a2fa288
2
+ SHA256:
3
+ metadata.gz: 204d6f964fd4220ed8043e376bd0d373d127968853b88559f66df7c9edf518ab
4
+ data.tar.gz: 9cdb88255825aba6bef3f71c78be2ed20edbac518a5cebda8535ec663497a51b
5
5
  SHA512:
6
- metadata.gz: f0008db3d38299ef4bb40a19a747dad1a03c2d0b36ccdc3959ccbf1904eb2d7a1a13344b9f1eb93564aad739058840099b0cbf9be3cbf10717392e012700871d
7
- data.tar.gz: adc5476ba9e07bb4a4dfe93b99b4e7a708eb784758ba32ddd0e0519e78ec1baa01002a2684f75015620d4bf9cef06c6d5cbd78511a8baba6da86f8638baf5cee
6
+ metadata.gz: 8f079510a9a3c4349c3164d8abc8cd6f99e65c826dee864d31188e4379fd345cda75c70292a73f3b0d682f2611351da23bbe6d1381f22d00b022aee4a695fb8e
7
+ data.tar.gz: d2b11fe898402af8662feedd335f44bf7392213721ae5f98a9eb930085f44c5270613e24c89ba0b07448cad35b6c99ca7057f52d6b9c9b43069e45254c6a81d3
@@ -4,6 +4,12 @@ module LDAPGroupsLookup
4
4
  module Behavior
5
5
  require 'ldap_groups_lookup'
6
6
 
7
+ # @return String object's mail attribute
8
+ def ldap_mail
9
+ return '' unless respond_to? :ldap_lookup_key
10
+ LDAPGroupsLookup.lookup_mail(ldap_lookup_key)
11
+ end
12
+
7
13
  # Searches object's nested LDAP groups by value of ldap_lookup_key
8
14
  # @return [Array] all of the object's LDAP groups, sorted
9
15
  def ldap_groups
@@ -33,6 +33,13 @@ module LDAPGroupsLookup
33
33
  service.search(base: tree, filter: Net::LDAP::Filter.equals('cn', cn), attributes: 'dn').first&.dn
34
34
  end
35
35
 
36
+ # Returns the mail for a given CN attribute
37
+ def lookup_mail(cn)
38
+ service&.search(base: tree,
39
+ filter: Net::LDAP::Filter.equals('cn', cn),
40
+ attributes: 'mail')&.first&.mail&.first.to_s
41
+ end
42
+
36
43
  # Strips a DN string down to just its CN segment.
37
44
  def dn_to_cn(dn)
38
45
  dn.match(/CN=(.+?),/)[1]
@@ -1,5 +1,5 @@
1
1
  # Gem version release tracking
2
2
  module LDAPGroupsLookup
3
3
  # Define release version
4
- VERSION = '0.5.0'.freeze
4
+ VERSION = '0.6.0'.freeze
5
5
  end
@@ -65,6 +65,36 @@ RSpec.describe LDAPGroupsLookup do
65
65
  end
66
66
  end
67
67
 
68
+ describe '#ldap_mail' do
69
+ before(:each) do
70
+ entry = Net::LDAP::Entry.new('CN=user,DC=ads,DC=example,DC=net')
71
+ entry['mail'] = ['user@domain.ext']
72
+ allow_any_instance_of(Net::LDAP).to receive(:search).and_return([entry])
73
+ allow_any_instance_of(Net::LDAP).to receive(:bind).and_return(true)
74
+ end
75
+ context 'when subject does not provide ldap_lookup_key' do
76
+ before(:each) { user.class.send(:remove_method, :ldap_lookup_key) }
77
+ it 'should return ''' do
78
+ expect(user.ldap_mail).to eq('')
79
+ end
80
+ end
81
+ context 'when subject provides ldap_lookup_key' do
82
+ context 'when LDAP is not configured' do
83
+ before(:each) do
84
+ config[:enabled] = false
85
+ end
86
+ it 'should return a blank string' do
87
+ expect(user.ldap_mail).to eq('')
88
+ end
89
+ end
90
+ context 'when LDAP is configured' do
91
+ it 'user should should have a mail attribute in mock LDAP' do
92
+ expect(user.ldap_mail).to eq 'user@domain.ext'
93
+ end
94
+ end
95
+ end
96
+ end
97
+
68
98
  describe '#ldap_groups' do
69
99
  before(:each) do
70
100
  entry = Net::LDAP::Entry.new('CN=user,DC=ads,DC=example,DC=net')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ldap_groups_lookup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Ploshay
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-07-17 00:00:00.000000000 Z
13
+ date: 2018-12-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: net-ldap
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  requirements: []
114
114
  rubyforge_project:
115
- rubygems_version: 2.6.14.1
115
+ rubygems_version: 2.7.6
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: Provides easy access to the list of LDAP groups a username is a member of.