radiant-users-extension 0.0.5 → 2.1.0.beta

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.
Files changed (66) hide show
  1. data/.gitignore +1 -0
  2. data/MIT-LICENCE +19 -0
  3. data/README.md +69 -16
  4. data/Rakefile +25 -11
  5. data/app/helpers/admin/users_helper.rb +5 -0
  6. data/app/models/administrator.rb +3 -0
  7. data/app/models/designer.rb +3 -0
  8. data/app/models/user.rb +82 -0
  9. data/app/models/visitor.rb +3 -0
  10. data/app/views/admin/users/_fields.html.haml +49 -0
  11. data/app/views/admin/users/_form.html.haml +6 -0
  12. data/app/views/admin/users/remove.html.haml +16 -0
  13. data/app/views/confirmations/new.html.haml +13 -0
  14. data/app/views/devise_mailer/confirmation_instructions.html.haml +9 -0
  15. data/app/views/devise_mailer/reset_password_instructions.html.haml +15 -0
  16. data/app/views/devise_mailer/unlock_instructions.html.haml +12 -0
  17. data/app/views/mailer/confirmation_instructions.html.haml +4 -0
  18. data/app/views/mailer/reset_password_instructions.html.haml +6 -0
  19. data/app/views/mailer/unlock_instructions.html.haml +5 -0
  20. data/app/views/passwords/edit.html.haml +17 -0
  21. data/app/views/passwords/new.html.haml +14 -0
  22. data/app/views/registrations/edit.html.haml +32 -0
  23. data/app/views/registrations/new.html.haml +30 -0
  24. data/app/views/sessions/new.html.haml +27 -0
  25. data/app/views/shared/_links.html.haml +42 -0
  26. data/app/views/shared/_version.html.haml +5 -0
  27. data/app/views/unlocks/new.html.haml +9 -0
  28. data/config/initializers/devise.rb +12 -0
  29. data/config/initializers/radiant_config.rb +3 -0
  30. data/config/initializers/radiant_devise_encryptor.rb +10 -0
  31. data/config/locales/devise.en.yml +35 -0
  32. data/config/locales/en.yml +8 -0
  33. data/config/routes.rb +11 -6
  34. data/db/migrate/20110105024337_change_users_to_devise.rb +94 -0
  35. data/db/migrate/20110105150917_add_class_name_field.rb +9 -0
  36. data/db/migrate/20110107032850_move_permissions_to_class.rb +30 -0
  37. data/db/migrate/20110118103247_change_admin_to_administrator.rb +18 -0
  38. data/features/support/env.rb +1 -1
  39. data/lib/login_system.rb +81 -0
  40. data/lib/radiant-users-extension.rb +2 -1
  41. data/lib/radiant-users-extension/version.rb +3 -0
  42. data/lib/tasks/users_extension_tasks.rake +3 -2
  43. data/lib/users/controllers/admin/resource_controller.rb +15 -0
  44. data/lib/users/controllers/admin/welcome_controller.rb +19 -0
  45. data/lib/users/controllers/application_controller.rb +25 -0
  46. data/lib/users/controllers/devise/confirmations_controller.rb +17 -0
  47. data/lib/users/controllers/devise/passwords_controller.rb +17 -0
  48. data/lib/users/controllers/devise/registrations_controller.rb +17 -0
  49. data/lib/users/controllers/devise/sessions_controller.rb +17 -0
  50. data/lib/users/controllers/single_form_body_styles.rb +27 -0
  51. data/lib/users/controllers/site_controller.rb +13 -0
  52. data/lib/users/lib/devise/controllers/internal_helpers.rb +31 -0
  53. data/lib/users/tags/core.rb +11 -13
  54. data/lib/users/tags/helper.rb +13 -0
  55. data/lib/users/tags/helpers.rb +1 -7
  56. data/radiant-users-extension.gemspec +73 -13
  57. data/spec/datasets/devise_users_dataset.rb +56 -0
  58. data/spec/models/user_spec.rb +125 -13
  59. data/spec/spec.opts +3 -4
  60. data/spec/spec_helper.rb +15 -4
  61. data/spec/tags/core_spec.rb +128 -0
  62. data/users_extension.rb +27 -9
  63. metadata +105 -21
  64. data/db/migrate/20100311014641_add_api_key_to_users.rb +0 -14
  65. data/db/migrate/20100311021835_add_access_to_user.rb +0 -9
  66. data/lib/users/lib/login_system.rb +0 -48
@@ -1 +1,2 @@
1
- # Nothing to see here
1
+ module RadiantUsersExtension
2
+ end
@@ -0,0 +1,3 @@
1
+ module RadiantUsersExtension
2
+ VERSION = '2.1.0.beta'
3
+ end
@@ -3,14 +3,15 @@ namespace :radiant do
3
3
  namespace :users do
4
4
 
5
5
  desc "Runs the migration of the Users extension"
6
- task :migrate => [ :environment, 'radiant:extensions:forms:migrate' ] do
6
+ task :migrate => :environment do
7
7
  require 'radiant/extension_migrator'
8
8
  if ENV["VERSION"]
9
9
  UsersExtension.migrator.migrate(ENV["VERSION"].to_i)
10
+ Rake::Task['db:schema:dump'].invoke
10
11
  else
11
12
  UsersExtension.migrator.migrate
13
+ Rake::Task['db:schema:dump'].invoke
12
14
  end
13
- Rake::Task['db:schema:dump'].invoke
14
15
  end
15
16
 
16
17
  desc "Copies public assets of the Users to the instance public/ directory."
@@ -0,0 +1,15 @@
1
+ module Users
2
+ module Controllers
3
+ module Admin
4
+ module ResourceController
5
+
6
+ def self.included(base)
7
+ base.class_eval do
8
+ before_filter :authenticate_user
9
+ end
10
+ end
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module Users
2
+ module Controllers
3
+ module Admin
4
+ module WelcomeController
5
+
6
+ def self.included(base)
7
+ base.class_eval do
8
+
9
+ def index
10
+ redirect_to default_admin_path
11
+ end
12
+
13
+ end
14
+ end
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,25 @@
1
+ module Users
2
+ module Controllers
3
+ module ApplicationController
4
+
5
+ def self.included(base)
6
+ base.class_eval do
7
+
8
+ private
9
+
10
+ def default_admin_path
11
+ default_user_path || root_path
12
+ end
13
+
14
+ def default_user_path
15
+ return false unless user_signed_in?
16
+ return '/admin/pages' if user_has_access_to_action?(:index)
17
+ Radiant::Config["defaults.path.#{current_user.class_name.downcase}"]
18
+ end
19
+
20
+ end
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ module Users
2
+ module Controllers
3
+ module Devise
4
+ module ConfirmationsController
5
+
6
+ def self.included(base)
7
+ include Users::Controllers::SingleFormBodyStyles
8
+
9
+ base.class_eval do
10
+ skip_before_filter :authenticate_user, :only => [ :new, :create, :show ]
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Users
2
+ module Controllers
3
+ module Devise
4
+ module PasswordsController
5
+
6
+ def self.included(base)
7
+ include Users::Controllers::SingleFormBodyStyles
8
+
9
+ base.class_eval do
10
+ skip_before_filter :authenticate_user, :only => [ :new, :create, :edit, :update ]
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Users
2
+ module Controllers
3
+ module Devise
4
+ module RegistrationsController
5
+
6
+ def self.included(base)
7
+ include Users::Controllers::SingleFormBodyStyles
8
+
9
+ base.class_eval do
10
+ skip_before_filter :authenticate_user, :only => [ :new, :create ]
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Users
2
+ module Controllers
3
+ module Devise
4
+ module SessionsController
5
+
6
+ def self.included(base)
7
+ include Users::Controllers::SingleFormBodyStyles
8
+
9
+ base.class_eval do
10
+ skip_before_filter :authenticate_user, :only => [ :new, :create, :destroy ]
11
+ end
12
+ end
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,27 @@
1
+ module Users
2
+ module Controllers
3
+ module SingleFormBodyStyles
4
+
5
+ def self.included(base)
6
+ base.class_eval do
7
+
8
+ def set_standard_body_style
9
+ @body_classes ||= []
10
+ @body_classes.concat(%w(single_form))
11
+ end
12
+
13
+ def after_sign_out_path_for(resource)
14
+ new_user_session_path
15
+ end
16
+
17
+ def after_sign_in_path_for(resource)
18
+ # TODO class based redirect
19
+ default_admin_path
20
+ end
21
+
22
+ end
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ module Users
2
+ module Controllers
3
+ module SiteController
4
+
5
+ def self.included(base)
6
+ base.class_eval do
7
+ skip_before_filter :authenticate_user
8
+ end
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,31 @@
1
+ module Users
2
+ module Lib
3
+ module Devise
4
+ module Controllers
5
+ module InternalHelpers
6
+
7
+ def self.included(base)
8
+
9
+ base.class_eval do
10
+
11
+ def set_flash_message(key, kind, now=false)
12
+ type = [:invalid, :alert, :unauthenticated].include?(kind) ? :error : kind
13
+ type = [:error].include?(type) ? type : :notice
14
+
15
+ flash[type] = I18n.t(:"#{kind}",
16
+ :scope => [:devise, controller_name.to_sym], :default => kind)
17
+ end
18
+
19
+ def after_sign_in_path_for(resource)
20
+ default_admin_path
21
+ end
22
+
23
+ end
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+
@@ -2,42 +2,40 @@ module Users
2
2
  module Tags
3
3
  module Core
4
4
  include Radiant::Taggable
5
-
5
+
6
6
  tag 'user' do |tag|
7
7
  return if tag.locals.page.cache?
8
8
 
9
- tag.locals.user = Helpers.current_user(tag)
9
+ tag.locals.user = Helper.current_user(tag)
10
10
 
11
11
  tag.expand
12
12
  end
13
13
 
14
+ desc %{ will expand if the user is logged in }
14
15
  tag 'user:if_user' do |tag|
15
16
  tag.expand if tag.locals.user.present?
16
17
  end
17
18
 
19
+ desc %{ will expand if the user is not logged in}
18
20
  tag 'user:unless_user' do |tag|
19
21
  tag.expand unless tag.locals.user.present?
20
22
  end
21
23
 
24
+ desc %{ will expand if the user can access radiant }
22
25
  tag 'user:if_authorized' do |tag|
23
- tag.expand unless tag.locals.user.access.present?
26
+ tag.expand if tag.locals.user.authorized?
24
27
  end
25
28
 
29
+ desc %{ will expand if the user can not access radiant }
26
30
  tag 'user:unless_authorized' do |tag|
27
- tag.expand if tag.locals.user.access.present?
28
- end
29
-
30
- tag 'user:if_admin' do |tag|
31
- tag.expand if tag.locals.user.admin
31
+ tag.expand unless tag.locals.user.authorized?
32
32
  end
33
33
 
34
- tag 'user:unless_admin' do |tag|
35
- tag.expand unless tag.locals.user.admin
36
- end
37
-
38
- [:name, :first_name, :last_name, :login, :email, :access].each do |symbol|
34
+ [:name, :login, :username, :email, :class_name].each do |symbol|
39
35
  desc %{ outputs the #{symbol} of the current user }
40
36
  tag "user:#{symbol}" do |tag|
37
+ return unless tag.locals.user.present?
38
+
41
39
  tag.locals.user.send(symbol)
42
40
  end
43
41
  end
@@ -0,0 +1,13 @@
1
+ module Users
2
+ module Tags
3
+ class Helper
4
+ class << self
5
+
6
+ def current_user(tag)
7
+ UserActionObserver.current_user
8
+ end
9
+
10
+ end
11
+ end
12
+ end
13
+ end
@@ -2,15 +2,9 @@ module Users
2
2
  module Tags
3
3
  class Helpers
4
4
  class << self
5
- include ActionView::Helpers::NumberHelper
6
5
 
7
6
  def current_user(tag)
8
- begin
9
- user_id = tag.locals.page.request.session['user_id']
10
- User.find(user_id)
11
- rescue
12
- return false
13
- end
7
+ User.find_by_id(tag.locals.page.request.session['user_id'])
14
8
  end
15
9
 
16
10
  end
@@ -5,60 +5,120 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{radiant-users-extension}
8
- s.version = "0.0.5"
8
+ s.version = "2.1.0.beta"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Christopher Rankin", "Dirk Kelly"]
12
- s.date = %q{2010-12-14}
13
- s.description = %q{Users creates support for non-admin users with API access}
14
- s.email = %q{dk@squaretalent.com}
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Dirk Kelly"]
12
+ s.date = %q{2011-01-18}
13
+ s.description = %q{Makes Radiant better by adding users!}
14
+ s.email = ["dk@dirkkelly.com"]
15
15
  s.extra_rdoc_files = [
16
16
  "README.md"
17
17
  ]
18
18
  s.files = [
19
+ ".gitignore",
20
+ "MIT-LICENCE",
19
21
  "README.md",
20
22
  "Rakefile",
21
23
  "VERSION",
24
+ "app/helpers/admin/users_helper.rb",
25
+ "app/models/administrator.rb",
26
+ "app/models/designer.rb",
27
+ "app/models/user.rb",
28
+ "app/models/visitor.rb",
29
+ "app/views/admin/users/_fields.html.haml",
30
+ "app/views/admin/users/_form.html.haml",
31
+ "app/views/admin/users/remove.html.haml",
32
+ "app/views/confirmations/new.html.haml",
33
+ "app/views/devise_mailer/confirmation_instructions.html.haml",
34
+ "app/views/devise_mailer/reset_password_instructions.html.haml",
35
+ "app/views/devise_mailer/unlock_instructions.html.haml",
36
+ "app/views/mailer/confirmation_instructions.html.haml",
37
+ "app/views/mailer/reset_password_instructions.html.haml",
38
+ "app/views/mailer/unlock_instructions.html.haml",
39
+ "app/views/passwords/edit.html.haml",
40
+ "app/views/passwords/new.html.haml",
41
+ "app/views/registrations/edit.html.haml",
42
+ "app/views/registrations/new.html.haml",
43
+ "app/views/sessions/new.html.haml",
44
+ "app/views/shared/_links.html.haml",
45
+ "app/views/shared/_version.html.haml",
46
+ "app/views/unlocks/new.html.haml",
47
+ "config/initializers/devise.rb",
48
+ "config/initializers/radiant_config.rb",
49
+ "config/initializers/radiant_devise_encryptor.rb",
50
+ "config/locales/devise.en.yml",
51
+ "config/locales/en.yml",
22
52
  "config/routes.rb",
23
53
  "cucumber.yml",
24
- "db/migrate/20100311014641_add_api_key_to_users.rb",
25
- "db/migrate/20100311021835_add_access_to_user.rb",
54
+ "db/migrate/20110105024337_change_users_to_devise.rb",
55
+ "db/migrate/20110105150917_add_class_name_field.rb",
56
+ "db/migrate/20110107032850_move_permissions_to_class.rb",
57
+ "db/migrate/20110118103247_change_admin_to_administrator.rb",
26
58
  "features/support/env.rb",
27
59
  "features/support/paths.rb",
60
+ "lib/login_system.rb",
28
61
  "lib/radiant-users-extension.rb",
62
+ "lib/radiant-users-extension/version.rb",
29
63
  "lib/tasks/users_extension_tasks.rake",
30
- "lib/users/lib/login_system.rb",
64
+ "lib/users/controllers/admin/resource_controller.rb",
65
+ "lib/users/controllers/admin/welcome_controller.rb",
66
+ "lib/users/controllers/application_controller.rb",
67
+ "lib/users/controllers/devise/confirmations_controller.rb",
68
+ "lib/users/controllers/devise/passwords_controller.rb",
69
+ "lib/users/controllers/devise/registrations_controller.rb",
70
+ "lib/users/controllers/devise/sessions_controller.rb",
71
+ "lib/users/controllers/single_form_body_styles.rb",
72
+ "lib/users/controllers/site_controller.rb",
73
+ "lib/users/lib/devise/controllers/internal_helpers.rb",
31
74
  "lib/users/models/user.rb",
32
75
  "lib/users/models/user/scoped.rb",
33
76
  "lib/users/tags/core.rb",
77
+ "lib/users/tags/helper.rb",
34
78
  "lib/users/tags/helpers.rb",
35
79
  "radiant-users-extension.gemspec",
80
+ "spec/datasets/devise_users_dataset.rb",
36
81
  "spec/datasets/scoped_users_dataset.rb",
37
82
  "spec/models/user_spec.rb",
38
83
  "spec/models/visitor_spec.rb",
39
84
  "spec/spec.opts",
40
85
  "spec/spec_helper.rb",
86
+ "spec/tags/core_spec.rb",
41
87
  "users_extension.rb"
42
88
  ]
43
89
  s.homepage = %q{http://github.com/dirkkelly/radiant-users-extension}
90
+ s.post_install_message = %q{
91
+ Add this to your radiant project with:
92
+ config.gem 'radiant-users-extension', :version => '2.1.0.beta'
93
+ }
44
94
  s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.3.7}
46
- s.summary = %q{Users Extension for Radiant CMS}
95
+ s.rubygems_version = %q{1.4.2}
96
+ s.summary = %q{Users for Radiant CMS}
47
97
  s.test_files = [
98
+ "features/support/env.rb",
99
+ "features/support/paths.rb",
100
+ "spec/datasets/devise_users_dataset.rb",
48
101
  "spec/datasets/scoped_users_dataset.rb",
49
102
  "spec/models/user_spec.rb",
50
103
  "spec/models/visitor_spec.rb",
51
- "spec/spec_helper.rb"
104
+ "spec/spec.opts",
105
+ "spec/spec_helper.rb",
106
+ "spec/tags/core_spec.rb"
52
107
  ]
53
108
 
54
109
  if s.respond_to? :specification_version then
55
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
56
110
  s.specification_version = 3
57
111
 
58
112
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
113
+ s.add_runtime_dependency(%q<radiant>, ["~> 0.9"])
114
+ s.add_runtime_dependency(%q<devise>, ["~> 1.0.9"])
59
115
  else
116
+ s.add_dependency(%q<radiant>, ["~> 0.9"])
117
+ s.add_dependency(%q<devise>, ["~> 1.0.9"])
60
118
  end
61
119
  else
120
+ s.add_dependency(%q<radiant>, ["~> 0.9"])
121
+ s.add_dependency(%q<devise>, ["~> 1.0.9"])
62
122
  end
63
123
  end
64
124