ucb_rails 0.0.6 → 0.0.7

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.
@@ -0,0 +1,7 @@
1
+ class UcbRails::Admin::ConfigurationController < UcbRails::Admin::BaseController
2
+
3
+ def index
4
+
5
+ end
6
+
7
+ end
@@ -55,7 +55,7 @@ class UcbRails::SessionsController < ApplicationController
55
55
 
56
56
  def redirect_url(provider)
57
57
  if provider.to_s == 'cas'
58
- "http://auth.berkeley.edu/cas/logout?url=#{root_url}"
58
+ "http://#{UcbRails[:cas_host]}/cas/logout?url=#{root_url}"
59
59
  else
60
60
  root_path
61
61
  end
@@ -0,0 +1,53 @@
1
+ module UcbRails
2
+ module Configuration
3
+
4
+ class Cas
5
+ attr_accessor :config
6
+
7
+ def initialize(config)
8
+ self.config = config.presence || {}
9
+ end
10
+
11
+ def configure
12
+ configure_omniauth
13
+ set_ucb_rails_cas_host
14
+ end
15
+
16
+ def configure_omniauth
17
+ host_name = host
18
+ Rails.application.config.middleware.use OmniAuth::Builder do
19
+
20
+ unless RailsEnvironment.production?
21
+ provider(:developer, fields: [:uid], uid_field: :uid)
22
+ end
23
+
24
+ provider :cas,
25
+ host: host_name,
26
+ login_url: '/cas/login',
27
+ service_validate_url: '/cas/serviceValidate'
28
+ end
29
+ end
30
+
31
+ def set_ucb_rails_cas_host
32
+ UcbRails.config.cas_host = host
33
+ end
34
+
35
+ private
36
+
37
+ def host
38
+ config.fetch('host', default_host)
39
+ end
40
+
41
+ def default_host
42
+ RailsEnvironment.production? ? 'auth.berkeley.edu' : 'auth-test.berkeley.edu'
43
+ end
44
+
45
+ class << self
46
+ def configure(config)
47
+ new(config).configure
48
+ end
49
+ end
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,40 @@
1
+ module UcbRails
2
+ module Configuration
3
+
4
+ class Ldap
5
+ attr_accessor :config
6
+
7
+ def initialize(config)
8
+ self.config = config.presence || {}
9
+ end
10
+
11
+ def configure
12
+ configure_host
13
+ authenticate
14
+ end
15
+
16
+ private
17
+
18
+ def configure_host
19
+ UCB::LDAP.host = config.fetch('host', default_host)
20
+ end
21
+
22
+ def authenticate
23
+ if config.has_key?('username')
24
+ UCB::LDAP.authenticate config['username'], config['password']
25
+ end
26
+ end
27
+
28
+ def default_host
29
+ RailsEnvironment.production? ? 'nds.berkeley.edu' : 'nds-test.berkeley.edu'
30
+ end
31
+
32
+ class << self
33
+ def configure(config)
34
+ new(config).configure
35
+ end
36
+ end
37
+ end
38
+
39
+ end
40
+ end
@@ -5,6 +5,15 @@ class UcbRails::User < ActiveRecord::Base
5
5
 
6
6
  before_validation :set_first_last_name
7
7
 
8
+ # Overridden by application
9
+ def roles
10
+ []
11
+ end
12
+
13
+ def has_role?(role)
14
+ admin? || roles.include?(role)
15
+ end
16
+
8
17
  def active?
9
18
  !inactive?
10
19
  end
@@ -0,0 +1,47 @@
1
+ %h1 Configuration
2
+
3
+ %h2 config/config.yml
4
+
5
+ - config = UcbRails::Configuration::Configuration.new
6
+ %pre
7
+ = preserve do
8
+ = config.config_yaml.to_yaml
9
+
10
+ %h2 LDAP
11
+
12
+ %pre
13
+ = preserve do
14
+ = ["host: #{UCB::LDAP.host}", "username: #{UCB::LDAP.username}", "password: #{UCB::LDAP.password}"].join("\n")
15
+
16
+ %h2 Email
17
+
18
+ %table{border: 1, cellpadding: '4px', cellspacing: 0}
19
+ %tr
20
+ %th Key
21
+ %th Value
22
+ %tr
23
+ %td default
24
+ %td= ActionMailer::Base.default.inspect
25
+ %tr
26
+ %td default_url_options
27
+ %td= ActionMailer::Base.default_url_options.inspect
28
+ %tr
29
+ %td delivery method
30
+ %td= ActionMailer::Base.delivery_method.inspect
31
+ %tr
32
+ %td raise delivery errors
33
+ %td= ActionMailer::Base.raise_delivery_errors.inspect
34
+ %tr
35
+ %td sendmail_settings
36
+ %td= ActionMailer::Base.sendmail_settings.inspect
37
+ %tr
38
+ %td smtp_settings
39
+ %td= ActionMailer::Base.smtp_settings.inspect
40
+ %tr
41
+ %td subject prefix
42
+ %td= UcbRails[:email_subject_prefix]
43
+
44
+ %h2 Exception Notifier
45
+
46
+ %pre
47
+ = config.for('exception_notifier')
@@ -18,6 +18,7 @@ Rails.application.routes.draw do
18
18
 
19
19
  namespace :admin do
20
20
  resources :announcements
21
+ get 'configuration' => 'configuration#index'
21
22
  get 'force_exception' => 'force_exception#index'
22
23
  resources :users do
23
24
  get 'ldap_search', on: :collection
@@ -11,7 +11,7 @@ $(function() {
11
11
  "oLanguage": {
12
12
  "sSearch": "First or Last Name starts with:"
13
13
  },
14
- "aLengthMenu": [[10, 20, 50, -1], [10, 20, 50, 'All']],
14
+ "aLengthMenu": [[20, 50, 100, 1000], [20, 50, 100, 1000]],
15
15
  "aaSorting": [[ 5, "desc" ]],
16
16
  "aoColumnDefs": [
17
17
  { "aDataSort": [ 0, 2, 3 ], "aTargets": [ 0 ] }, // admin
@@ -1,5 +1,6 @@
1
1
  = nav_dropdown("Developer") do
2
- = dropdown_item("Bootstrap Examples", bvh_path)
2
+ = dropdown_item(icon('cog', "Configuration"), ucb_rails_admin_configuration_path)
3
+ = dropdown_item(icon('picture', "Bootstrap Examples"), bvh_path)
3
4
  = dropdown_item(icon('exclamation-sign', "Force Exception"), ucb_rails_admin_force_exception_path)
4
5
 
5
6
  - if RailsEnvironment.development?
@@ -1,14 +1,20 @@
1
1
  # You can have configuration per-environment by nesting under the
2
2
  # environment key, or have a top level.
3
3
 
4
-
5
-
6
4
  # ldap:
5
+ # host: 'nds.berkeley.edu'
6
+ # host: 'nds-test.berkeley.edu'
7
7
  # username: <username>
8
8
  # password: <password>
9
9
 
10
10
  development:
11
11
 
12
+ # Default behavior will do the right thing. Only set if you want
13
+ # non-standard behavior.
14
+ # cas:
15
+ # host: 'auth.berkeley.edu'
16
+ # host: 'auth-test.berkeley.edu'
17
+
12
18
  # email:
13
19
  # default:
14
20
  # from: user@gmail.com
@@ -40,7 +46,11 @@ development:
40
46
  # - user1@example.com
41
47
  # - user2@example.com
42
48
 
49
+ # Default behavior will select the correct host. No need to set anything if
50
+ # you aren't specifying username/password.
43
51
  # ldap:
52
+ # host: 'nds.berkeley.edu'
53
+ # host: 'nds-test.berkeley.edu'
44
54
  # username: <username>
45
55
  # password: <password>
46
56
 
@@ -20,24 +20,17 @@ UcbRails::Configuration::ExceptionNotification.configure(config.for('exception_n
20
20
  # UCB::LDAP
21
21
  ############################################################
22
22
 
23
- UCB::LDAP.host = 'nds.berkeley.edu'
24
- if ldap_credentials = config.for('ldap')
25
- puts "[UcbRails] Using ldap credentials from #{config.config_filename}"
26
- UCB::LDAP.authenticate(ldap_credentials['username'], ldap_credentials['password'])
27
- else
28
- puts "[UcbRails] No ldap credentials found. Using anonymous bind."
29
- end
30
-
23
+ UcbRails::Configuration::Ldap.configure(config.for('ldap'))
24
+
31
25
  ############################################################
32
26
  # OmniAuth
33
27
  ############################################################
34
28
 
35
- Rails.application.config.middleware.use OmniAuth::Builder do
36
- provider(:developer, fields: [:uid], uid_field: :uid) unless RailsEnvironment.production?
37
-
38
- cas_host = RailsEnvironment.production? ? 'auth.berkeley.edu/cas' : 'auth-test.berkeley.edu/cas'
39
- provider :cas, host: cas_host
40
- end
29
+ UcbRails::Configuration::Cas.configure(config.for('cas'))
30
+
31
+ ############################################################
32
+ # UcbRails
33
+ ############################################################
41
34
 
42
35
  UcbRails.config do |config|
43
36
 
@@ -1,3 +1,3 @@
1
1
  module UcbRails
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ucb_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-21 00:00:00.000000000 Z
12
+ date: 2013-06-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -563,6 +563,7 @@ extensions: []
563
563
  extra_rdoc_files: []
564
564
  files:
565
565
  - app/controllers/ucb_rails/admin/base_controller.rb
566
+ - app/controllers/ucb_rails/admin/configuration_controller.rb
566
567
  - app/controllers/ucb_rails/admin/force_exception_controller.rb
567
568
  - app/controllers/ucb_rails/admin/users_controller.rb
568
569
  - app/controllers/ucb_rails/bootstrap_controller.rb
@@ -581,9 +582,11 @@ files:
581
582
  - app/helpers/ucb_rails/renderer/ldap_person_search_result_link.rb
582
583
  - app/helpers/ucb_rails/renderer/lps_typeahead_search_field.rb
583
584
  - app/mailers/ucb_rails/test_mailer.rb
585
+ - app/models/ucb_rails/configuration/cas.rb
584
586
  - app/models/ucb_rails/configuration/configuration.rb
585
587
  - app/models/ucb_rails/configuration/email.rb
586
588
  - app/models/ucb_rails/configuration/exception_notification.rb
589
+ - app/models/ucb_rails/configuration/ldap.rb
587
590
  - app/models/ucb_rails/ldap_person/entry.rb
588
591
  - app/models/ucb_rails/ldap_person/finder.rb
589
592
  - app/models/ucb_rails/ldap_person/test_finder.rb
@@ -596,6 +599,7 @@ files:
596
599
  - app/models/ucb_rails/user_session_manager/in_people_ou_add_to_users_table.rb
597
600
  - app/models/ucb_rails/user_session_manager/ldap_person_user_wrapper.rb
598
601
  - app/models/ucb_rails/user_typeahead.rb
602
+ - app/views/ucb_rails/admin/configuration/index.html.haml
599
603
  - app/views/ucb_rails/admin/users/_form.html.haml
600
604
  - app/views/ucb_rails/admin/users/_user.html.haml
601
605
  - app/views/ucb_rails/admin/users/edit.html.haml