devise_active_directory_authenticatable 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -5,6 +5,8 @@ Devise ActiveDirectory Authenticatable is a AD based authentication strategy for
5
5
 
6
6
  If you are building applications for use within your organization which require authentication and you want to use AD, this plugin is for you.
7
7
 
8
+ Please note, this plugin is currently under heavy development.
9
+
8
10
  Requirements
9
11
  ------------
10
12
 
@@ -13,8 +15,9 @@ Requirements
13
15
 
14
16
  These gems are dependencies of the gem:
15
17
 
16
- - Devise 1.1.2
17
- - active_directory 1.0.4 from http://github.com/ajrkerr/activedirectory
18
+ - Devise 1.1.5
19
+ - active_directory 1.2.4
20
+ - ancestry 1.2.3 _(For storing the group heirarchy)_
18
21
 
19
22
  Installation
20
23
  ------------
@@ -25,12 +28,8 @@ This will *only* work for Rails 3 applications.
25
28
 
26
29
  In the Gemfile for your application:
27
30
 
28
- gem "devise", ">=1.1.2"
31
+ gem "devise"
29
32
  gem "devise_active_directory_authenticatable"
30
-
31
- To get the latest version, pull directly from github instead of the gem:
32
-
33
- gem "devise_active_directory_authenticatable", :git => "git://github.com/ajrkerr/devise_active_directory_authenticatable.git"
34
33
 
35
34
 
36
35
  Setup
@@ -49,11 +48,21 @@ This will update the devise.rb initializer, and update your user model. There ar
49
48
 
50
49
  Options:
51
50
 
52
- [--user-model=USER_MODEL] # Model to update
51
+ [--user-model=USER_MODEL] # User Model to update
53
52
  # Default: user
53
+ [--group-model=USER_MODEL] # Group Model to update
54
+ # Default: group
54
55
  [--add-rescue] # Update Application Controller with resuce_from for DeviseActiveDirectoryAuthenticatable::ActiveDirectoryException
55
56
  # Default: true
56
57
 
58
+ The rest of this documentation needs to be revised. To get going on this, run the installer which will add some configuration options to config/intializers/devise.rb
59
+
60
+ In your user model add:
61
+ devise :ad_user
62
+
63
+ In your group model add:
64
+ devise :ad_group
65
+
57
66
 
58
67
  Usage
59
68
  -----
@@ -73,7 +82,7 @@ In initializer `config/initializers/devise.rb` :
73
82
  * Active Directory server configuration settings
74
83
 
75
84
  * ad\_attr\_mapping
76
- * Attribute mapping between active directory and the user model
85
+ * Attribute mapping between active directory and the user model. These attributes will be pulled from the AD
77
86
 
78
87
  * ad\_username _(default: :userPrincipalName)_
79
88
  * Username attribute on the AD to login with. Maps with the login_with attribute from devise.
@@ -85,6 +94,19 @@ In initializer `config/initializers/devise.rb` :
85
94
  * ad\_logger _(default: true)_
86
95
  * If set to true, will log Active Directory queries to the Rails logger.
87
96
 
97
+ * ad\_update\_users _(default: true)_
98
+ * If true, devise will update the user attributes from the Active Directory when the user logs in
99
+
100
+ * ad\_update\_groups _(default: true)_
101
+ * If true, devise will allow the group models to be update from the Active Directory
102
+
103
+ * ad\_update\_group\_memberships _(default: true)_ _[unimplemented]_
104
+ * If true, devise will allow the memberships for groups and users to be updated. It will also update the memberships when a user logs in.
105
+
106
+ * ad\_update\_user\_memberships _(default: true)_ _[unimplemented]_
107
+ * If true, devise will allow the memberships for groups and users to be updated. It will also update the memberships when a user logs in.
108
+
109
+
88
110
 
89
111
  References
90
112
  ----------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{devise_active_directory_authenticatable}
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Adam Kerr"]
@@ -64,6 +64,22 @@ module Devise
64
64
  # Log LDAP queries to the Rails logger
65
65
  mattr_accessor :ad_logger
66
66
  @@ad_logger = true
67
+
68
+ ##Update the user object from the AD
69
+ mattr_accessor :ad_update_users
70
+ @@ad_update_users = true
71
+
72
+ ##Update the group object from the AD
73
+ mattr_accessor :ad_update_groups
74
+ @@ad_update_groups = true
75
+
76
+ ##Update the group memberships from the AD, this uses the ancestory gem
77
+ mattr_accessor :ad_update_group_memberships
78
+ @@ad_update_group_memberships = true
79
+
80
+ ##Update the user memberships from the AD
81
+ mattr_accessor :ad_update_user_memberships
82
+ @@ad_update_user_memberships = true
67
83
  end
68
84
 
69
85
  # Add ldap_authenticatable strategy to defaults.
@@ -2,8 +2,9 @@ module DeviseActiveDirectoryAuthenticatable
2
2
  class InstallGenerator < Rails::Generators::Base
3
3
  source_root File.expand_path("../templates", __FILE__)
4
4
 
5
- class_option :user_model, :type => :string, :default => "user", :desc => "Model to update"
6
- class_option :update_model, :type => :boolean, :default => true, :desc => "Update model to change from database_authenticatable to active_directory_authenticatable"
5
+ class_option :user_model, :type => :string, :default => "user", :desc => "User model to update"
6
+ class_option :group_model, :type => :string, :default => "group", :desc => "Group model to update"
7
+ class_option :update_model, :type => :boolean, :default => true, :desc => "Update models to change from database_authenticatable to active_directory_authenticatable or insert the code"
7
8
  class_option :add_rescue, :type => :boolean, :default => true, :desc => "Update Application Controller with resuce_from for DeviseActiveDirectoryAuthenticatable::ActiveDirectoryException"
8
9
 
9
10
 
@@ -14,6 +15,10 @@ module DeviseActiveDirectoryAuthenticatable
14
15
  def update_user_model
15
16
  gsub_file "app/models/#{options.user_model}.rb", /:database_authenticatable/, ":ad_user" if options.update_model?
16
17
  end
18
+
19
+ def update_group_model
20
+ inject_into_class "app/models/#{options.group_model}.rb", options.group_model, "devise :ad_group" if options.update_model?
21
+ end
17
22
 
18
23
  def update_application_controller
19
24
  inject_into_class "app/controllers/application_controller.rb", ApplicationController, rescue_from_exception if options.add_rescue?
@@ -74,6 +79,18 @@ module DeviseActiveDirectoryAuthenticatable
74
79
  ##Log LDAP queries to the Rails logger
75
80
  # config.ad_logger = true
76
81
 
82
+ ##Update the user object from the AD
83
+ # config.ad_update_users = true
84
+
85
+ ##Update the group object from the AD
86
+ # config.ad_update_groups = true
87
+
88
+ ##Update the group memberships from the AD, this uses the ancestory gem to store the hierarchy
89
+ # config.ad_update_group_memberships = true
90
+
91
+ ##Update the user memberships from the AD
92
+ # config.ad_update_user_memberships = true
93
+
77
94
  eof
78
95
 
79
96
  settings
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_active_directory_authenticatable
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 2
10
- version: 0.3.2
9
+ - 3
10
+ version: 0.3.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Adam Kerr