cream 0.8.9.1 → 0.8.9.2
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.
- data/README.textile +7 -1
- data/VERSION +1 -1
- data/cream.gemspec +4 -3
- data/lib/cream/configure/engine.rb +22 -0
- data/lib/cream/configure/rails.rb +9 -6
- data/lib/cream/controller/user_control.rb +79 -0
- data/lib/cream/rails/config.rb +2 -1
- data/lib/cream/role.rb +11 -1
- data/lib/cream/roles_config.rb +2 -1
- data/lib/cream/view/host_area.rb +9 -0
- data/lib/generators/cream/app/app_generator.rb +14 -13
- data/lib/generators/cream/full_config/full_config_generator.rb +27 -19
- data/lib/generators/cream/helpers/args_helper.rb +16 -0
- data/lib/generators/devise/config/config_generator.rb +0 -1
- data/lib/generators/devise/users/users_generator.rb +8 -14
- metadata +5 -4
- data/lib/cream/controller/application_controller.rb +0 -22
data/README.textile
CHANGED
@@ -76,7 +76,13 @@ Example idea:
|
|
76
76
|
|
77
77
|
This way, any editor user created will always be given the :editor role on creation and he can later add the :publisher and/or :blog_editor roles, depending on whether Cream is set up as a single or multi role system. In the future, the framework might even allow some user types to have multiple roles and others to have only a single role (here indicated by the _roles_config :multi_ statement) ? What do you think?
|
78
78
|
|
79
|
-
*Ideas and suggestions are most welcome!*
|
79
|
+
*Ideas and suggestions are most welcome!*
|
80
|
+
|
81
|
+
h3. The path towards 1.0
|
82
|
+
|
83
|
+
I will continue the 0.8.9.x line only with bug fixes and other minor fixes or additions.
|
84
|
+
|
85
|
+
The 0.9 line will likely be a total redesign/refactoring using what I am learning from reading _Jose Valim's_ book *Crafting Rails Applications*. I will create a new project using _enginex_, complete with one or more dummy apllications and take it from there.
|
80
86
|
|
81
87
|
h2. Cream edge, debugging and assisting developing the framework
|
82
88
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.9.
|
1
|
+
0.8.9.2
|
data/cream.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{cream}
|
8
|
-
s.version = "0.8.9.
|
8
|
+
s.version = "0.8.9.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
12
|
-
s.date = %q{2011-01-
|
12
|
+
s.date = %q{2011-01-18}
|
13
13
|
s.description = %q{An integrated Authentication, Authorization and Roles solution for your Rails 3 app with support for multiple ORMs}
|
14
14
|
s.email = %q{kmandrup@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -40,9 +40,10 @@ Gem::Specification.new do |s|
|
|
40
40
|
"init.rb",
|
41
41
|
"lib/cream.rb",
|
42
42
|
"lib/cream/configure/after_init/role_config.rb",
|
43
|
+
"lib/cream/configure/engine.rb",
|
43
44
|
"lib/cream/configure/rails.rb",
|
44
45
|
"lib/cream/controller/ability.rb",
|
45
|
-
"lib/cream/controller/
|
46
|
+
"lib/cream/controller/user_control.rb",
|
46
47
|
"lib/cream/helper/host.rb",
|
47
48
|
"lib/cream/helper/role.rb",
|
48
49
|
"lib/cream/namespaces.rb",
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Not yet used! Should use it?
|
2
|
+
|
3
|
+
module Cream
|
4
|
+
# Include helpers in the given scope to AC and AV.
|
5
|
+
# "Borrowed" from devise
|
6
|
+
def self.include_helpers(scope)
|
7
|
+
ActiveSupport.on_load(:action_controller) do
|
8
|
+
include scope::Helpers
|
9
|
+
include scope::UrlHelpers
|
10
|
+
end
|
11
|
+
|
12
|
+
ActiveSupport.on_load(:action_view) do
|
13
|
+
include scope::UrlHelpers
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Engine < ::Rails::Engine
|
18
|
+
initializer "cream.helpers" do
|
19
|
+
Cream.include_helpers(Cream::Controllers)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -9,7 +9,7 @@ Rails3::Plugin::Extender.new do
|
|
9
9
|
extend_rails :controller do
|
10
10
|
extend_from_module Cream, :role
|
11
11
|
extend_from_module Cream::Controller, :ability
|
12
|
-
extend_from_module Cream::Helper, :role, :host
|
12
|
+
extend_from_module Cream::Helper, :role, :host
|
13
13
|
end
|
14
14
|
|
15
15
|
# extend action_view with methods from some modules
|
@@ -20,10 +20,13 @@ Rails3::Plugin::Extender.new do
|
|
20
20
|
|
21
21
|
after :initialize do
|
22
22
|
load File.dirname(__FILE__) + '/after_init/role_config.rb'
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
|
24
|
+
if defined? Cream::UserControl
|
25
|
+
# puts "Extending ApplicationController with UserControl"
|
26
|
+
ApplicationController.class_eval "include Cream::UserControl"
|
27
|
+
else
|
28
|
+
puts "Cream::UserControl not defined!"
|
29
|
+
end
|
28
30
|
end
|
29
31
|
end
|
32
|
+
|
@@ -0,0 +1,79 @@
|
|
1
|
+
module Cream
|
2
|
+
module UserControl
|
3
|
+
|
4
|
+
def current_user
|
5
|
+
# puts "current_user"
|
6
|
+
if !session[:user_id]
|
7
|
+
# puts "make guest"
|
8
|
+
@guest ||= Guest.create(guest_options)
|
9
|
+
# puts "guest: #{@guest}"
|
10
|
+
return @guest
|
11
|
+
end
|
12
|
+
if session[:user_id]
|
13
|
+
begin
|
14
|
+
clazz = session[:user_class_name].constantize
|
15
|
+
@current_user ||= clazz.find session[:user_id]
|
16
|
+
# puts "logged in user: #{@current_user}"
|
17
|
+
return @current_user
|
18
|
+
rescue Exception => e
|
19
|
+
puts "Error with current_user: user_class_name = '#{session[:user_class_name]}' error: #{e}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def set_language language_code
|
25
|
+
current_user.language_code = language_code if current_user # for non-guest user
|
26
|
+
guest_options[:language_code] = language_code # for guest user
|
27
|
+
end
|
28
|
+
|
29
|
+
def guest_options
|
30
|
+
session[:guest_options] ||= {}
|
31
|
+
end
|
32
|
+
|
33
|
+
def user_signed_in?
|
34
|
+
current_user && !current_user.has_role?(:guest)
|
35
|
+
end
|
36
|
+
|
37
|
+
def user_session
|
38
|
+
user_signed_in? ? super : session
|
39
|
+
end
|
40
|
+
|
41
|
+
# Sign in an user that already was authenticated. This helper is useful for logging
|
42
|
+
# users in after sign up.
|
43
|
+
#
|
44
|
+
# Examples:
|
45
|
+
#
|
46
|
+
# sign_in :user, @user # sign_in(scope, resource)
|
47
|
+
# sign_in @user # sign_in(resource)
|
48
|
+
# sign_in @user, :event => :authentication # sign_in(resource, options)
|
49
|
+
#
|
50
|
+
def sign_in(resource_or_scope, *args)
|
51
|
+
options = args.extract_options!
|
52
|
+
scope = Devise::Mapping.find_scope!(resource_or_scope)
|
53
|
+
resource = args.last || resource_or_scope
|
54
|
+
expire_session_data_after_sign_in!
|
55
|
+
warden.set_user(resource, options.merge!(:scope => scope))
|
56
|
+
# set user id
|
57
|
+
session[:user_id] = resource.id
|
58
|
+
session[:user_class_name] = resource.class.name
|
59
|
+
end
|
60
|
+
|
61
|
+
# Sign out a given user or scope. This helper is useful for signing out an user
|
62
|
+
# after deleting accounts.
|
63
|
+
#
|
64
|
+
# Examples:
|
65
|
+
#
|
66
|
+
# sign_out :user # sign_out(scope)
|
67
|
+
# sign_out @user # sign_out(resource)
|
68
|
+
#
|
69
|
+
def sign_out(resource_or_scope)
|
70
|
+
scope = Devise::Mapping.find_scope!(resource_or_scope)
|
71
|
+
warden.user(scope) # Without loading user here, before_logout hook is not called
|
72
|
+
warden.raw_session.inspect # Without this inspect here. The session does not clear.
|
73
|
+
warden.logout(scope)
|
74
|
+
# user id
|
75
|
+
session[:user_id] = nil
|
76
|
+
@current_user = nil
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
data/lib/cream/rails/config.rb
CHANGED
data/lib/cream/role.rb
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
module Cream
|
2
2
|
class << self
|
3
|
-
attr_accessor :available_roles
|
3
|
+
attr_accessor :available_roles
|
4
|
+
attr_accessor :available_user_types
|
5
|
+
end
|
6
|
+
|
7
|
+
module UserTypes
|
8
|
+
def self.available
|
9
|
+
return Cream.available_user_types if Cream.available_user_types.present?
|
10
|
+
return Cream.user_types if Cream.user_types.present?
|
11
|
+
puts "Cream has not been configured with any devise User Types"
|
12
|
+
[]
|
13
|
+
end
|
4
14
|
end
|
5
15
|
|
6
16
|
module Role
|
data/lib/cream/roles_config.rb
CHANGED
data/lib/cream/view/host_area.rb
CHANGED
@@ -4,9 +4,18 @@ module Cream::View
|
|
4
4
|
yield block if localhost?
|
5
5
|
end
|
6
6
|
|
7
|
+
def not_for_localhost(&block)
|
8
|
+
yield block if !localhost?
|
9
|
+
end
|
10
|
+
|
7
11
|
def for_public(&block)
|
8
12
|
# with_output_buffer(&block) if publichost?
|
9
13
|
yield block if publichost?
|
10
14
|
end
|
15
|
+
|
16
|
+
def not_for_public(&block)
|
17
|
+
# with_output_buffer(&block) if publichost?
|
18
|
+
yield block if !publichost?
|
19
|
+
end
|
11
20
|
end
|
12
21
|
end
|
@@ -75,14 +75,21 @@ require "rails/test_unit/railtie"
|
|
75
75
|
remove_model :guest if has_model?(:guest)
|
76
76
|
create_model :guest do
|
77
77
|
%Q{
|
78
|
-
# modify this as needed for
|
79
|
-
# attr_accessor :login, :
|
80
|
-
# attr_accessor :
|
81
|
-
#
|
82
|
-
# attr_accessible :login
|
78
|
+
# modify this as needed (for any forms using current_user)
|
79
|
+
# attr_accessor :login, :password
|
80
|
+
# attr_accessor :username, :email
|
81
|
+
# attr_accessor :country, :country_code, :language, :language_code, :city
|
83
82
|
|
84
|
-
def self.create
|
85
|
-
Guest.new
|
83
|
+
def self.create options = {}
|
84
|
+
Guest.new options.merge(session[:guest_options] || {})
|
85
|
+
end
|
86
|
+
|
87
|
+
def save
|
88
|
+
false
|
89
|
+
end
|
90
|
+
|
91
|
+
def save!
|
92
|
+
false
|
86
93
|
end
|
87
94
|
|
88
95
|
def is? role
|
@@ -104,12 +111,6 @@ require "rails/test_unit/railtie"
|
|
104
111
|
end
|
105
112
|
say "A Guest user model has been created. Users that have not signed in will get an instance of this class as the current_user."
|
106
113
|
end
|
107
|
-
|
108
|
-
protected
|
109
|
-
|
110
|
-
def guest_user?
|
111
|
-
options[:gust_user]
|
112
|
-
end
|
113
114
|
end
|
114
115
|
end
|
115
116
|
end
|
@@ -15,30 +15,33 @@ module Cream
|
|
15
15
|
class_option :strategy, :type => :string, :default => 'role_string', :desc => "Role strategy to use"
|
16
16
|
|
17
17
|
# Create Admin user
|
18
|
-
class_option :user_class, :type => :string, :default => 'User', :desc => "User class"
|
19
|
-
class_option :
|
20
|
-
class_option :
|
21
|
-
|
18
|
+
class_option :user_class, :type => :string, :default => 'User', :desc => "User class", :aliases => '-u'
|
19
|
+
class_option :role_class, :type => :string, :default => 'Role', :desc => "Role class", :aliases => '-rc'
|
20
|
+
class_option :user_role_class, :type => :string, :default => 'UserRole', :desc => "UserRole class", :aliases => '-urc'
|
21
|
+
|
22
|
+
class_option :guest_user, :type => :boolean, :default => true, :desc => "Create guest user", :aliases => '-guest'
|
22
23
|
|
23
24
|
# Roles
|
24
|
-
class_option :default_roles, :type => :boolean, :default => true, :desc => "Create default roles :admin and :guest"
|
25
|
-
class_option :roles, :type => :array, :default => [], :desc => "Roles to create"
|
25
|
+
class_option :default_roles, :type => :boolean, :default => true, :desc => "Create default roles :admin and :guest", :aliases => '-dr'
|
26
|
+
class_option :roles, :type => :array, :default => [], :desc => "Roles to create", :aliases => '-r'
|
27
|
+
|
28
|
+
class_option :user_types, :type => :array, :default => ['Admin'], :desc => "Devise Users to create that override the generic base User", :aliases => '-ut'
|
26
29
|
|
27
30
|
# ORM to use
|
28
|
-
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use"
|
31
|
+
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use", :aliases => '-o'
|
29
32
|
|
30
|
-
class_option :locales, :type => :array, :default => ['all'], :desc => "List of locales - 'all' means ALL locales"
|
31
|
-
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
33
|
+
class_option :locales, :type => :array, :default => ['all'], :desc => "List of locales - 'all' means ALL locales", :aliases => '-l'
|
34
|
+
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location", :aliases => '-lf'
|
32
35
|
|
33
|
-
class_option :configure, :type => :array, :default => [], :desc => "Finetune which generators to run: app, permits, roles, devise, cancan"
|
34
|
-
class_option :gems, :type => :boolean, :default => true, :desc => "Add gems to gemfile?"
|
35
|
-
class_option :migrations, :type => :boolean, :default => false, :desc => "
|
36
|
+
class_option :configure, :type => :array, :default => [], :desc => "Finetune which generators to run: app, permits, roles, devise, cancan", :aliases => '-c'
|
37
|
+
class_option :gems, :type => :boolean, :default => true, :desc => "Add gems to gemfile?", :aliases => '-g'
|
38
|
+
class_option :migrations, :type => :boolean, :default => false, :desc => "Auto-run database migrations?", :aliases => '-m'
|
36
39
|
|
37
40
|
# Devise customize
|
38
|
-
class_option :customize, :type => :array, :default => [], :desc => "Which elements of devise to customize (customize generator)"
|
41
|
+
class_option :customize, :type => :array, :default => [], :desc => "Which elements of devise to customize (customize generator)", :aliases => '-cust'
|
39
42
|
|
40
|
-
class_option :user_name, :type => :boolean, :default => true, :desc => "Add username as login option"
|
41
|
-
class_option :login_type, :type => :string, :default => 'generic', :desc => "How to login: 'email', 'username', 'generic' (i.e 'username' or 'email')"
|
43
|
+
class_option :user_name, :type => :boolean, :default => true, :desc => "Add username as login option", :aliases => '-un'
|
44
|
+
class_option :login_type, :type => :string, :default => 'generic', :desc => "How to login: 'email', 'username', 'generic' (i.e 'username' or 'email')", :aliases => '-lt'
|
42
45
|
|
43
46
|
def main
|
44
47
|
execute_generator if validate_orm && validate_strategy
|
@@ -88,12 +91,12 @@ module Cream
|
|
88
91
|
end
|
89
92
|
|
90
93
|
def run_app
|
91
|
-
rgen "cream:app --orm #{orm}"
|
94
|
+
rgen "cream:app --orm #{orm} #{guest_user_option}"
|
92
95
|
end
|
93
96
|
|
94
97
|
def run_devise
|
95
|
-
rgen "devise:config #{user_class} --orm #{orm} #{
|
96
|
-
rgen "devise:users --orm #{orm} --roles #{roles_list} #{
|
98
|
+
rgen "devise:config #{user_class} --orm #{orm}" # --user-types #{user_types}
|
99
|
+
rgen "devise:users --orm #{orm} --roles #{roles_list} --user-types #{user_types_list} --no-gems"
|
97
100
|
|
98
101
|
say("Devise credentials not customized since --customize option was not used to say so!", :green) if !customize_credentials?
|
99
102
|
|
@@ -113,9 +116,10 @@ module Cream
|
|
113
116
|
end
|
114
117
|
|
115
118
|
def cream_initializer
|
116
|
-
create_initializer :cream do
|
119
|
+
create_initializer :cream do
|
117
120
|
%Q{Cream.setup do |config|
|
118
121
|
config.roles = #{sym_roles.inspect}
|
122
|
+
config.user_types = #{user_types_code}
|
119
123
|
end
|
120
124
|
|
121
125
|
require 'cream/configure/rails'
|
@@ -123,6 +127,10 @@ require 'cream/configure/rails'
|
|
123
127
|
end
|
124
128
|
end
|
125
129
|
|
130
|
+
def guest_user_option
|
131
|
+
"--guest-user" if guest_user?
|
132
|
+
end
|
133
|
+
|
126
134
|
def customize_credentials?
|
127
135
|
customize.include? 'credentials'
|
128
136
|
end
|
@@ -50,6 +50,10 @@ module Cream
|
|
50
50
|
options[:strategy]
|
51
51
|
end
|
52
52
|
|
53
|
+
def user_types
|
54
|
+
options[:user_types]
|
55
|
+
end
|
56
|
+
|
53
57
|
def admin_user?
|
54
58
|
options[:admin_user]
|
55
59
|
end
|
@@ -58,6 +62,18 @@ module Cream
|
|
58
62
|
roles.map(&:to_sym)
|
59
63
|
end
|
60
64
|
|
65
|
+
def guest_user?
|
66
|
+
options[:guest_user]
|
67
|
+
end
|
68
|
+
|
69
|
+
def user_types_code
|
70
|
+
user_types.map {|ut| "'#{ut}'"}.join(', ')
|
71
|
+
end
|
72
|
+
|
73
|
+
def user_types_list
|
74
|
+
user_types.map {|ut| "#{ut}"}.join(' ')
|
75
|
+
end
|
76
|
+
|
61
77
|
def user_class
|
62
78
|
options[:user_class] || 'User'
|
63
79
|
end
|
@@ -19,7 +19,6 @@ module Devise
|
|
19
19
|
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use"
|
20
20
|
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
21
21
|
class_option :gems, :type => :boolean, :default => true, :desc => "Add gems to gemfile?"
|
22
|
-
class_option :admin_user, :type => :boolean, :default => false, :desc => "Setup for admin user"
|
23
22
|
|
24
23
|
def configure_devise
|
25
24
|
logger.add_logfile :logfile => logfile if logfile
|
@@ -21,10 +21,12 @@ module Devise
|
|
21
21
|
# ORM to use
|
22
22
|
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use"
|
23
23
|
class_option :roles, :type => :array, :default => [], :desc => "Roles"
|
24
|
-
class_option :default_roles, :type => :boolean, :default => true, :desc => "Create default roles :admin and :guest"
|
24
|
+
class_option :default_roles, :type => :boolean, :default => true, :desc => "Create default roles :admin and :guest"
|
25
|
+
|
26
|
+
class_option :user_types, :type => :array, :default => ['admin'], :desc => "Devise Users to create that override the generic base User", :aliases => '-ut'
|
25
27
|
|
26
28
|
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
27
|
-
class_option :gems, :type => :boolean, :default => false, :desc => "Add gems to gemfile?"
|
29
|
+
class_option :gems, :type => :boolean, :default => false, :desc => "Add gems to gemfile?"
|
28
30
|
|
29
31
|
def configure_devise_users
|
30
32
|
logger.add_logfile :logfile => logfile if logfile
|
@@ -40,12 +42,9 @@ module Devise
|
|
40
42
|
# # if User model is NOT configured with devise strategy
|
41
43
|
insert_devise_strategy user_class, :defaults if !has_devise_user? user_class
|
42
44
|
|
43
|
-
# create Admin User model for with devise strategy if admin user should be present
|
44
|
-
devise_user admin_user if admin_user?
|
45
|
-
|
46
45
|
# create role specific user inheriting from base User for each role
|
47
|
-
|
48
|
-
create_user(
|
46
|
+
user_types.flatten.each do |user_type|
|
47
|
+
create_user(user_type) if !has_model?(user_type.as_filename)
|
49
48
|
end
|
50
49
|
|
51
50
|
routes_configure!
|
@@ -68,7 +67,7 @@ module Devise
|
|
68
67
|
def create_user name
|
69
68
|
return if name.to_sym == :guest
|
70
69
|
|
71
|
-
logger.debug "
|
70
|
+
logger.debug "create devise user: #{name}"
|
72
71
|
create_user_model name
|
73
72
|
# remove any current inheritance
|
74
73
|
remove_inheritance name
|
@@ -104,16 +103,11 @@ module Devise
|
|
104
103
|
create_devise_model user_class
|
105
104
|
end
|
106
105
|
|
107
|
-
def devise_admin_user
|
108
|
-
# if app does NOT have a Admin model
|
109
|
-
create_user(admin_class) if !has_admin_model?
|
110
|
-
end
|
111
|
-
|
112
106
|
private
|
113
107
|
|
114
108
|
def customize_note
|
115
109
|
%q{
|
116
|
-
Customize controller action if needed to render individual registration form for each
|
110
|
+
Customize controller action if needed to render an individual registration form for each devise User type
|
117
111
|
|
118
112
|
Example:
|
119
113
|
|
metadata
CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
|
|
6
6
|
- 0
|
7
7
|
- 8
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.8.9.
|
9
|
+
- 2
|
10
|
+
version: 0.8.9.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kristian Mandrup
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01-
|
18
|
+
date: 2011-01-18 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -501,9 +501,10 @@ files:
|
|
501
501
|
- init.rb
|
502
502
|
- lib/cream.rb
|
503
503
|
- lib/cream/configure/after_init/role_config.rb
|
504
|
+
- lib/cream/configure/engine.rb
|
504
505
|
- lib/cream/configure/rails.rb
|
505
506
|
- lib/cream/controller/ability.rb
|
506
|
-
- lib/cream/controller/
|
507
|
+
- lib/cream/controller/user_control.rb
|
507
508
|
- lib/cream/helper/host.rb
|
508
509
|
- lib/cream/helper/role.rb
|
509
510
|
- lib/cream/namespaces.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
class ApplicationController < ActionController::Base
|
2
|
-
|
3
|
-
def current_user
|
4
|
-
if defined? Cream::Role
|
5
|
-
# Try to get instance of any of the available roles as the current user
|
6
|
-
Cream::Role.available.each do |role|
|
7
|
-
method = :"current_#{role}"
|
8
|
-
@cu ||= send method if respond_to?(method)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
return @cu if @cu
|
12
|
-
session[:guest] ||= Guest.create if defined?(Guest)
|
13
|
-
end
|
14
|
-
|
15
|
-
def user_signed_in?
|
16
|
-
current_user && !current_user.has_role?(:guest)
|
17
|
-
end
|
18
|
-
|
19
|
-
def user_session
|
20
|
-
user_signed_in? ? super : session
|
21
|
-
end
|
22
|
-
end
|