lockdown 0.5.0 → 0.5.1
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/History.txt +8 -0
- data/Manifest.txt +0 -36
- data/lib/lockdown/controller.rb +2 -2
- data/lib/lockdown/version.rb +1 -1
- data/rails_generators/lockdown/lockdown_generator.rb +56 -57
- data/website/generator.html +1 -1
- data/website/index.html +1 -1
- metadata +2 -38
- data/app_generators/lockdown/lockdown_generator.rb.orig +0 -69
- data/rails_generators/lockdown_all/USAGE +0 -5
- data/rails_generators/lockdown_all/lockdown_all_generator.rb +0 -190
- data/rails_generators/lockdown_all/templates/app/controllers/permissions_controller.rb +0 -22
- data/rails_generators/lockdown_all/templates/app/controllers/sessions_controller.rb +0 -38
- data/rails_generators/lockdown_all/templates/app/controllers/user_groups_controller.rb +0 -113
- data/rails_generators/lockdown_all/templates/app/controllers/users_controller.rb +0 -124
- data/rails_generators/lockdown_all/templates/app/helpers/permissions_helper.rb +0 -13
- data/rails_generators/lockdown_all/templates/app/helpers/user_groups_helper.rb +0 -35
- data/rails_generators/lockdown_all/templates/app/helpers/users_helper.rb +0 -78
- data/rails_generators/lockdown_all/templates/app/models/permission.rb +0 -13
- data/rails_generators/lockdown_all/templates/app/models/profile.rb +0 -10
- data/rails_generators/lockdown_all/templates/app/models/user.rb +0 -72
- data/rails_generators/lockdown_all/templates/app/models/user_group.rb +0 -15
- data/rails_generators/lockdown_all/templates/app/views/permissions/_data.html.erb +0 -13
- data/rails_generators/lockdown_all/templates/app/views/permissions/index.html.erb +0 -16
- data/rails_generators/lockdown_all/templates/app/views/permissions/show.html.erb +0 -3
- data/rails_generators/lockdown_all/templates/app/views/sessions/new.html.erb +0 -12
- data/rails_generators/lockdown_all/templates/app/views/user_groups/_data.html.erb +0 -44
- data/rails_generators/lockdown_all/templates/app/views/user_groups/_form.html.erb +0 -11
- data/rails_generators/lockdown_all/templates/app/views/user_groups/edit.html.erb +0 -6
- data/rails_generators/lockdown_all/templates/app/views/user_groups/index.html.erb +0 -20
- data/rails_generators/lockdown_all/templates/app/views/user_groups/new.html.erb +0 -5
- data/rails_generators/lockdown_all/templates/app/views/user_groups/show.html.erb +0 -6
- data/rails_generators/lockdown_all/templates/app/views/users/_data.html.erb +0 -62
- data/rails_generators/lockdown_all/templates/app/views/users/_form.html.erb +0 -18
- data/rails_generators/lockdown_all/templates/app/views/users/_password.html.erb +0 -5
- data/rails_generators/lockdown_all/templates/app/views/users/edit.html.erb +0 -6
- data/rails_generators/lockdown_all/templates/app/views/users/index.html.erb +0 -22
- data/rails_generators/lockdown_all/templates/app/views/users/new.html.erb +0 -5
- data/rails_generators/lockdown_all/templates/app/views/users/show.html.erb +0 -4
- data/rails_generators/lockdown_all/templates/db/migrate/create_admin_user_and_user_group.rb +0 -19
- data/rails_generators/lockdown_all/templates/db/migrate/create_permissions.rb +0 -19
- data/rails_generators/lockdown_all/templates/db/migrate/create_profiles.rb +0 -26
- data/rails_generators/lockdown_all/templates/db/migrate/create_user_groups.rb +0 -19
- data/rails_generators/lockdown_all/templates/db/migrate/create_users.rb +0 -17
@@ -1,38 +0,0 @@
|
|
1
|
-
# This controller handles the login/logout function of the site.
|
2
|
-
class SessionsController < ApplicationController
|
3
|
-
def new
|
4
|
-
#Stub required for Lockdown to grant access
|
5
|
-
end
|
6
|
-
|
7
|
-
def create
|
8
|
-
password_authentication(params[:login], params[:password])
|
9
|
-
end
|
10
|
-
|
11
|
-
def destroy
|
12
|
-
logger.info "resetting session in sessions controller"
|
13
|
-
reset_session
|
14
|
-
flash[:notice] = "You have been logged out."
|
15
|
-
redirect_back_or_default('/')
|
16
|
-
end
|
17
|
-
|
18
|
-
protected
|
19
|
-
|
20
|
-
def password_authentication(login, password)
|
21
|
-
set_session_user(User.authenticate(login, password))
|
22
|
-
if logged_in?
|
23
|
-
successful_login
|
24
|
-
else
|
25
|
-
failed_login
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def failed_login(message = 'Authentication failed.')
|
30
|
-
flash[:error] = message
|
31
|
-
redirect_back_or_default login_url
|
32
|
-
end
|
33
|
-
|
34
|
-
def successful_login
|
35
|
-
flash[:notice] = "Logged in successfully"
|
36
|
-
redirect_back_or_default "/"
|
37
|
-
end
|
38
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
class UserGroupsController < ApplicationController
|
2
|
-
before_filter :find_user_group, :only => [:show, :edit, :update, :destroy]
|
3
|
-
after_filter :update_permissions, :only => [:create, :update]
|
4
|
-
|
5
|
-
# GET /user_groups
|
6
|
-
# GET /user_groups.xml
|
7
|
-
def index
|
8
|
-
@user_groups = UserGroup.find(:all)
|
9
|
-
|
10
|
-
respond_to do |format|
|
11
|
-
format.html # index.html.erb
|
12
|
-
format.xml { render :xml => @user_groups }
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# GET /user_groups/1
|
17
|
-
# GET /user_groups/1.xml
|
18
|
-
def show
|
19
|
-
respond_to do |format|
|
20
|
-
format.html # show.html.erb
|
21
|
-
format.xml { render :xml => @user_group }
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
# GET /user_groups/new
|
26
|
-
# GET /user_groups/new.xml
|
27
|
-
def new
|
28
|
-
@user_group = UserGroup.new
|
29
|
-
@all_permissions = Lockdown::System.permissions_assignable_for_user(current_user)
|
30
|
-
|
31
|
-
respond_to do |format|
|
32
|
-
format.html # new.html.erb
|
33
|
-
format.xml { render :xml => @user_group }
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
# GET /user_groups/1/edit
|
38
|
-
def edit
|
39
|
-
@all_permissions = Lockdown::System.permissions_assignable_for_user(current_user)
|
40
|
-
end
|
41
|
-
|
42
|
-
# POST /user_groups
|
43
|
-
# POST /user_groups.xml
|
44
|
-
def create
|
45
|
-
@user_group = UserGroup.new(params[:user_group])
|
46
|
-
|
47
|
-
respond_to do |format|
|
48
|
-
if @user_group.save
|
49
|
-
flash[:notice] = 'UserGroup was successfully created.'
|
50
|
-
format.html { redirect_to(@user_group) }
|
51
|
-
format.xml { render :xml => @user_group, :status => :created, :location => @user_group }
|
52
|
-
else
|
53
|
-
@all_permissions = Lockdown::System.permissions_assignable_for_user(current_user)
|
54
|
-
format.html { render :action => "new" }
|
55
|
-
format.xml { render :xml => @user_group.errors, :status => :unprocessable_entity }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
# PUT /user_groups/1
|
61
|
-
# PUT /user_groups/1.xml
|
62
|
-
def update
|
63
|
-
respond_to do |format|
|
64
|
-
if @user_group.update_attributes(params[:user_group])
|
65
|
-
flash[:notice] = 'UserGroup was successfully updated.'
|
66
|
-
format.html { redirect_to(@user_group) }
|
67
|
-
format.xml { head :ok }
|
68
|
-
else
|
69
|
-
@all_permissions = Lockdown::System.permissions_assignable_for_user(current_user)
|
70
|
-
format.html { render :action => "edit" }
|
71
|
-
format.xml { render :xml => @user_group.errors, :status => :unprocessable_entity }
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
# DELETE /user_groups/1
|
77
|
-
# DELETE /user_groups/1.xml
|
78
|
-
def destroy
|
79
|
-
@user_group.destroy
|
80
|
-
|
81
|
-
respond_to do |format|
|
82
|
-
format.html { redirect_to(user_groups_url) }
|
83
|
-
format.xml { head :ok }
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
private
|
88
|
-
|
89
|
-
def find_user_group
|
90
|
-
@user_group = UserGroup.find(params[:id])
|
91
|
-
if @action_name != "show" && Lockdown::System.has_user_group?(@user_group)
|
92
|
-
raise SecurityError,"Invalid attempt to modify user group."
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def update_permissions
|
97
|
-
new_perm_ids = params.collect{|p| p[0].split("_")[1].to_i if p[0] =~ /^perm_/}.compact
|
98
|
-
#
|
99
|
-
# Removed previously associated permissions if not checked this time.
|
100
|
-
#
|
101
|
-
@user_group.permissions.dup.each do |p|
|
102
|
-
@user_group.permissions.delete(p) unless new_perm_ids.include?(p.id)
|
103
|
-
end
|
104
|
-
|
105
|
-
#
|
106
|
-
# Add in the new permissions
|
107
|
-
#
|
108
|
-
new_perm_ids.each do |id|
|
109
|
-
next if @user_group.permission_ids.include?(id)
|
110
|
-
@user_group.permissions << Permission.find(id)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
@@ -1,124 +0,0 @@
|
|
1
|
-
class UsersController < ApplicationController
|
2
|
-
before_filter :find_user, :only => [:show, :edit, :update, :destroy]
|
3
|
-
after_filter :update_user_groups, :only => [:create, :update]
|
4
|
-
# GET /users
|
5
|
-
# GET /users.xml
|
6
|
-
def index
|
7
|
-
@users = User.find :all, :include => [:profile, :user_groups]
|
8
|
-
respond_to do |format|
|
9
|
-
format.html # index.html.erb
|
10
|
-
format.xml { render :xml => @users }
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# GET /users/1
|
15
|
-
# GET /users/1.xml
|
16
|
-
def show
|
17
|
-
respond_to do |format|
|
18
|
-
format.html # show.html.erb
|
19
|
-
format.xml { render :xml => @user }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# GET /users/new
|
24
|
-
# GET /users/new.xml
|
25
|
-
def new
|
26
|
-
@user = User.new
|
27
|
-
@profile = Profile.new
|
28
|
-
@user_groups_for_user = Lockdown::System.user_groups_assignable_for_user(current_user)
|
29
|
-
respond_to do |format|
|
30
|
-
format.html # new.html.erb
|
31
|
-
format.xml { render :xml => @user }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# GET /users/1/edit
|
36
|
-
def edit
|
37
|
-
@user_groups_for_user = Lockdown::System.user_groups_assignable_for_user(current_user)
|
38
|
-
end
|
39
|
-
|
40
|
-
# POST /users
|
41
|
-
# POST /users.xml
|
42
|
-
def create
|
43
|
-
@user = User.new(params[:user])
|
44
|
-
@profile = Profile.new(params[:profile])
|
45
|
-
|
46
|
-
@user.profile = @profile
|
47
|
-
if @user.save
|
48
|
-
flash[:notice] = "Thanks for signing up!"
|
49
|
-
redirect_to(users_path)
|
50
|
-
else
|
51
|
-
@user_groups_for_user = Lockdown::System.user_groups_assignable_for_user(current_user)
|
52
|
-
flash[:error] = "Please correct the following issues"
|
53
|
-
render :action => "new"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# PUT /users/1
|
58
|
-
# PUT /users/1.xml
|
59
|
-
def update
|
60
|
-
@user.profile.attributes = params[:profile]
|
61
|
-
@user.attributes = params[:user]
|
62
|
-
|
63
|
-
respond_to do |format|
|
64
|
-
if @user.save
|
65
|
-
flash[:notice] = 'User was successfully updated.'
|
66
|
-
format.html { redirect_to(@user) }
|
67
|
-
format.xml { head :ok }
|
68
|
-
else
|
69
|
-
@user_groups_for_user = Lockdown::System.user_groups_assignable_for_user(current_user)
|
70
|
-
format.html { render :action => "edit" }
|
71
|
-
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
# DELETE /users/1
|
77
|
-
# DELETE /users/1.xml
|
78
|
-
def destroy
|
79
|
-
@user.destroy
|
80
|
-
|
81
|
-
respond_to do |format|
|
82
|
-
format.html { redirect_to(users_url) }
|
83
|
-
format.xml { head :ok }
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
def change_password
|
88
|
-
render :update do |page|
|
89
|
-
page.replace_html 'password', :partial => 'password'
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
private
|
94
|
-
|
95
|
-
def find_user
|
96
|
-
# Skip test if current user is an administrator
|
97
|
-
unless current_user_is_admin?
|
98
|
-
# Raise error if id not = current logged in user
|
99
|
-
raise SecurityError.new if (current_user_id != params[:id].to_i)
|
100
|
-
end
|
101
|
-
@user = User.find(params[:id])
|
102
|
-
raise SecurityError.new if @user.nil?
|
103
|
-
@profile = @user.profile
|
104
|
-
end
|
105
|
-
|
106
|
-
def update_user_groups
|
107
|
-
new_ug_ids = params.collect{|p| p[0].split("_")[1].to_i if p[0] =~ /^ug_/}.compact
|
108
|
-
#
|
109
|
-
# Removed previously associated user_groups if not checked this time.
|
110
|
-
#
|
111
|
-
@user.user_groups.dup.each do |g|
|
112
|
-
#Don't remove the automatically assigned user groups
|
113
|
-
next if Lockdown::System.has_user_group?(g)
|
114
|
-
@user.user_groups.delete(g) unless new_ug_ids.include?(g.id)
|
115
|
-
end
|
116
|
-
#
|
117
|
-
# Add in the new permissions
|
118
|
-
#
|
119
|
-
new_ug_ids.each do |id|
|
120
|
-
next if @user.user_group_ids.include?(id)
|
121
|
-
@user.user_groups << UserGroup.find(id)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module PermissionsHelper
|
2
|
-
def permission_name_value
|
3
|
-
h @permission.name
|
4
|
-
end
|
5
|
-
|
6
|
-
def permission_access_rights_value
|
7
|
-
Lockdown::System.access_rights_for_permission(@permission).collect{|r| r}.join("<br/>")
|
8
|
-
end
|
9
|
-
|
10
|
-
def permission_users_value
|
11
|
-
@permission.all_users.collect{|u| link_to_or_show(u.full_name, u)}.join("<br/>")
|
12
|
-
end
|
13
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module UserGroupsHelper
|
2
|
-
def user_group_name_value
|
3
|
-
if @action_name == "show"
|
4
|
-
h @user_group.name
|
5
|
-
else
|
6
|
-
text_field_tag "user_group[name]", @user_group.name
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def user_group_permissions_value
|
11
|
-
if @action_name == "show"
|
12
|
-
@user_group.permissions.collect{|p| p.name + "<br/>"}
|
13
|
-
else
|
14
|
-
rvalue = %{<ul id="all_permissions" class="checklist">}
|
15
|
-
@all_permissions.each_with_index do |perm,i|
|
16
|
-
bg = ( i % 2 == 0 ) ? "even" : "odd"
|
17
|
-
input_id = "perm_#{perm.id}"
|
18
|
-
checked = (@user_group.permission_ids.include?(perm.id) ? "checked" : "")
|
19
|
-
bg << "_" << checked if checked.length > 0
|
20
|
-
rvalue << <<-HTML
|
21
|
-
<li class="#{bg}">
|
22
|
-
<label id="lbl_#{input_id}" for="#{input_id}" onclick="do_highlight('#{input_id}')">
|
23
|
-
<input id="#{input_id}" name="#{input_id}" type="checkbox" #{checked}/> #{perm.name}
|
24
|
-
</label>
|
25
|
-
</li>
|
26
|
-
HTML
|
27
|
-
end
|
28
|
-
rvalue << "</ul>"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def user_group_users_value
|
33
|
-
@user_group.all_users.collect{|u| link_to_or_show(u.full_name, u)}.join("<br/>")
|
34
|
-
end
|
35
|
-
end
|
@@ -1,78 +0,0 @@
|
|
1
|
-
module UsersHelper
|
2
|
-
def profile_first_name_value
|
3
|
-
if @action_name == "show"
|
4
|
-
h @profile.first_name
|
5
|
-
else
|
6
|
-
text_field_tag "profile[first_name]", @profile.first_name
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def profile_last_name_value
|
11
|
-
if @action_name == "show"
|
12
|
-
h @profile.last_name
|
13
|
-
else
|
14
|
-
text_field_tag "profile[last_name]", @profile.last_name
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def profile_email_value
|
19
|
-
if @action_name == "show"
|
20
|
-
h @profile.email
|
21
|
-
else
|
22
|
-
text_field_tag "profile[email]", @profile.email
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def user_login_value
|
27
|
-
if @action_name == "show"
|
28
|
-
h @user.login
|
29
|
-
else
|
30
|
-
text_field_tag "user[login]", @user.login
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def user_password_value
|
35
|
-
if @action_name == "show"
|
36
|
-
h "Hidden for security..."
|
37
|
-
else
|
38
|
-
%{<input autocomplete="off" type="password" name="user[password]" id="user_password"/>}
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def user_password_confirmation_value
|
43
|
-
if @action_name == "show"
|
44
|
-
h "Hidden for security..."
|
45
|
-
else
|
46
|
-
%{<input autocomplete="off" type="password" name="user[password_confirmation]" id="user_password_confirmation"/>}
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def user_user_groups_value
|
51
|
-
if @action_name == "show"
|
52
|
-
@user.user_groups.collect{|ug| ug.name + "<br/>"}
|
53
|
-
else
|
54
|
-
rvalue = %{<ul id="all_user_groups" class="checklist">}
|
55
|
-
#
|
56
|
-
# Restrict user group list to the list of the current user.
|
57
|
-
# This prevents a user from creating someone with more access than
|
58
|
-
# him/herself.
|
59
|
-
#
|
60
|
-
@user_groups_for_user.each_with_index do |ug,i|
|
61
|
-
bg = ( i % 2 == 0 ) ? "even" : "odd"
|
62
|
-
input_id = "ug_#{ug.id}"
|
63
|
-
checked = (@user.user_group_ids.include?(ug.id) ? "checked" : "")
|
64
|
-
bg << "_" << checked if checked.length > 0
|
65
|
-
rvalue << <<-HTML
|
66
|
-
<li class="#{bg}">
|
67
|
-
<label id="lbl_#{input_id}" for="#{input_id}" onclick="do_highlight('#{input_id}')">
|
68
|
-
<input id="#{input_id}" name="#{input_id}" type="checkbox" #{checked}/> #{ug.name}
|
69
|
-
</label>
|
70
|
-
</li>
|
71
|
-
HTML
|
72
|
-
end
|
73
|
-
rvalue << "</ul>"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
|
78
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class Permission < ActiveRecord::Base
|
2
|
-
has_and_belongs_to_many :user_groups
|
3
|
-
|
4
|
-
def all_users
|
5
|
-
User.find_by_sql <<-SQL
|
6
|
-
select users.*
|
7
|
-
from users, user_groups_users, permissions_user_groups
|
8
|
-
where users.id = user_groups_users.user_id
|
9
|
-
and user_groups_users.user_group_id = permissions_user_groups.user_group_id
|
10
|
-
and permissions_user_groups.permission_id = #{self.id}
|
11
|
-
SQL
|
12
|
-
end
|
13
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
class Profile < ActiveRecord::Base
|
2
|
-
SYSTEM = 1
|
3
|
-
|
4
|
-
validates_presence_of :email, :first_name, :last_name
|
5
|
-
|
6
|
-
validates_length_of :email, :within => 5..100
|
7
|
-
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
|
8
|
-
|
9
|
-
validates_uniqueness_of :email, :case_sensitive => false
|
10
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require 'digest/sha1'
|
2
|
-
class User < ActiveRecord::Base
|
3
|
-
has_and_belongs_to_many :user_groups
|
4
|
-
belongs_to :profile
|
5
|
-
|
6
|
-
# Virtual attributes
|
7
|
-
attr_accessor :password
|
8
|
-
|
9
|
-
validates_presence_of :login
|
10
|
-
validates_presence_of :password, :if => :password_required?
|
11
|
-
validates_presence_of :password_confirmation, :if => :password_required?
|
12
|
-
validates_length_of :password, :within => 4..40, :if => :password_required?
|
13
|
-
validates_confirmation_of :password, :if => :password_required?
|
14
|
-
validates_length_of :login, :within => 3..40
|
15
|
-
validates_uniqueness_of :login, :case_sensitive => false
|
16
|
-
|
17
|
-
validates_presence_of :profile
|
18
|
-
validates_associated :profile
|
19
|
-
|
20
|
-
before_save :prepare_for_save
|
21
|
-
|
22
|
-
attr_accessible :login, :password, :password_confirmation
|
23
|
-
|
24
|
-
# Authenticates a user by their login name and unencrypted password.
|
25
|
-
# Returns the user or nil.
|
26
|
-
def self.authenticate(login, password)
|
27
|
-
u = find :first, :conditions => ['login = ?', login] # need to get the salt
|
28
|
-
u && u.authenticated?(password) ? u : nil
|
29
|
-
end
|
30
|
-
|
31
|
-
# Encrypts some data with the salt.
|
32
|
-
def self.encrypt(password, salt)
|
33
|
-
Digest::SHA1.hexdigest("--#{salt}--#{password}--")
|
34
|
-
end
|
35
|
-
|
36
|
-
# Encrypts the password with the user salt
|
37
|
-
def encrypt(password)
|
38
|
-
self.class.encrypt(password, salt)
|
39
|
-
end
|
40
|
-
|
41
|
-
def authenticated?(password)
|
42
|
-
crypted_password == encrypt(password)
|
43
|
-
end
|
44
|
-
|
45
|
-
def email
|
46
|
-
self.profile.email
|
47
|
-
end
|
48
|
-
|
49
|
-
def full_name
|
50
|
-
self.profile.first_name + " " + self.profile.last_name
|
51
|
-
end
|
52
|
-
|
53
|
-
protected
|
54
|
-
|
55
|
-
def prepare_for_save
|
56
|
-
encrypt_password
|
57
|
-
self.profile.save
|
58
|
-
end
|
59
|
-
|
60
|
-
def encrypt_password
|
61
|
-
return if password.blank?
|
62
|
-
if new_record?
|
63
|
-
self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{login}--")
|
64
|
-
end
|
65
|
-
self.crypted_password = encrypt(password)
|
66
|
-
end
|
67
|
-
|
68
|
-
def password_required?
|
69
|
-
(crypted_password.blank? || !password.blank?)
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
class UserGroup < ActiveRecord::Base
|
2
|
-
has_and_belongs_to_many :permissions
|
3
|
-
has_and_belongs_to_many :users
|
4
|
-
|
5
|
-
validates_presence_of :name
|
6
|
-
|
7
|
-
def all_users
|
8
|
-
User.find_by_sql <<-SQL
|
9
|
-
select users.*
|
10
|
-
from users, user_groups_users
|
11
|
-
where users.id = user_groups_users.user_id
|
12
|
-
and user_groups_users.user_group_id = #{self.id}
|
13
|
-
SQL
|
14
|
-
end
|
15
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
<%= flash[:notice] if flash[:notice] %>
|
2
|
-
<%= flash[:error] if flash[:error] %>
|
3
|
-
|
4
|
-
<% form_tag sessions_path do -%>
|
5
|
-
<p><label for="login">Login</label><br/>
|
6
|
-
<%= text_field_tag 'login' %></p>
|
7
|
-
|
8
|
-
<p><label for="password">Password</label><br/>
|
9
|
-
<%= password_field_tag 'password' %></p>
|
10
|
-
|
11
|
-
<p><%= submit_tag 'Log in' %></p>
|
12
|
-
<% end -%>
|
@@ -1,44 +0,0 @@
|
|
1
|
-
<!--
|
2
|
-
take the style block out. this is duplicated in users/_data.html.erb
|
3
|
-
without this, the user group selection is just no good
|
4
|
-
-->
|
5
|
-
<style>
|
6
|
-
.checklist{
|
7
|
-
overflow: auto;
|
8
|
-
border: 1px solid #ccc;
|
9
|
-
list-style: none;
|
10
|
-
height: 300px;
|
11
|
-
text-align: left;
|
12
|
-
list-style: none;
|
13
|
-
margin-left: 12px;
|
14
|
-
}
|
15
|
-
|
16
|
-
.checklist li{
|
17
|
-
padding-left: 6px;
|
18
|
-
}
|
19
|
-
|
20
|
-
li.even_checked,
|
21
|
-
li.even{
|
22
|
-
background: #DFDFDF;
|
23
|
-
}
|
24
|
-
|
25
|
-
li.even_checked,
|
26
|
-
li.odd_checked{
|
27
|
-
color: red;
|
28
|
-
}
|
29
|
-
</style>
|
30
|
-
|
31
|
-
<p>
|
32
|
-
<b>Name</b><br />
|
33
|
-
<%= user_group_name_value %>
|
34
|
-
</p>
|
35
|
-
<p>
|
36
|
-
<b>Permissions</b><br />
|
37
|
-
<%= user_group_permissions_value %>
|
38
|
-
</p>
|
39
|
-
<% if @action_name == "show" %>
|
40
|
-
<p>
|
41
|
-
<b>Users in user group:</b><br />
|
42
|
-
<%= user_group_users_value %>
|
43
|
-
</p>
|
44
|
-
<% end%>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<%
|
2
|
-
submit_label = "Update"
|
3
|
-
submit_label = "Create" if @user_group.new_record?
|
4
|
-
-%>
|
5
|
-
|
6
|
-
<%= error_messages_for :user_group %>
|
7
|
-
|
8
|
-
<% form_for(@user_group) do |f| %>
|
9
|
-
<%= render :partial => "data", :locals => {:f => f} %>
|
10
|
-
<p> <%= f.submit submit_label %> </p>
|
11
|
-
<% end %>
|
@@ -1,20 +0,0 @@
|
|
1
|
-
<h1>Listing User Groups</h1>
|
2
|
-
|
3
|
-
<table>
|
4
|
-
<tr>
|
5
|
-
<th>Name</th>
|
6
|
-
</tr>
|
7
|
-
|
8
|
-
<% for user_group in @user_groups %>
|
9
|
-
<tr>
|
10
|
-
<td><%=h user_group.name %></td>
|
11
|
-
<td><%= link_to 'Show', user_group %></td>
|
12
|
-
<td><%= link_to('Edit', edit_user_group_path(user_group)) unless Lockdown::System.has_user_group?(user_group) %></td>
|
13
|
-
<td><%= link_to('Destroy', user_group, :confirm => 'Are you sure?', :method => :delete) unless Lockdown::System.has_user_group?(user_group) %></td>
|
14
|
-
</tr>
|
15
|
-
<% end %>
|
16
|
-
</table>
|
17
|
-
|
18
|
-
<br />
|
19
|
-
|
20
|
-
<%= link_to 'New User Group', new_user_group_path %>
|