lockdown 0.1.2 → 0.1.3
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 +7 -1
- data/Manifest.txt +35 -0
- data/config/hoe.rb +0 -1
- data/lib/lockdown/version.rb +1 -1
- data/rails_generators/lockdown_all/USAGE +5 -0
- data/rails_generators/lockdown_all/lockdown_all_generator.rb +69 -0
- data/rails_generators/lockdown_all/templates/app/controllers/permissions_controller.rb +22 -0
- data/rails_generators/lockdown_all/templates/app/controllers/sessions_controller.rb +37 -0
- data/rails_generators/lockdown_all/templates/app/controllers/user_groups_controller.rb +113 -0
- data/rails_generators/lockdown_all/templates/app/controllers/users_controller.rb +124 -0
- data/rails_generators/lockdown_all/templates/app/helpers/permissions_helper.rb +13 -0
- data/rails_generators/lockdown_all/templates/app/helpers/user_groups_helper.rb +35 -0
- data/rails_generators/lockdown_all/templates/app/helpers/users_helper.rb +78 -0
- data/rails_generators/lockdown_all/templates/app/models/permission.rb +80 -0
- data/rails_generators/lockdown_all/templates/app/models/user.rb +96 -0
- data/rails_generators/lockdown_all/templates/app/models/user_group.rb +177 -0
- data/rails_generators/lockdown_all/templates/app/views/permissions/_data.html.erb +13 -0
- data/rails_generators/lockdown_all/templates/app/views/permissions/index.html.erb +16 -0
- data/rails_generators/lockdown_all/templates/app/views/permissions/show.html.erb +3 -0
- data/rails_generators/lockdown_all/templates/app/views/sessions/new.html.erb +9 -0
- data/rails_generators/lockdown_all/templates/app/views/user_groups/_data.html.erb +15 -0
- data/rails_generators/lockdown_all/templates/app/views/user_groups/_form.html.erb +11 -0
- data/rails_generators/lockdown_all/templates/app/views/user_groups/edit.html.erb +6 -0
- data/rails_generators/lockdown_all/templates/app/views/user_groups/index.html.erb +20 -0
- data/rails_generators/lockdown_all/templates/app/views/user_groups/new.html.erb +5 -0
- data/rails_generators/lockdown_all/templates/app/views/user_groups/show.html.erb +6 -0
- data/rails_generators/lockdown_all/templates/app/views/users/_data.html.erb +32 -0
- data/rails_generators/lockdown_all/templates/app/views/users/_form.html.erb +18 -0
- data/rails_generators/lockdown_all/templates/app/views/users/_password.html.erb +5 -0
- data/rails_generators/lockdown_all/templates/app/views/users/edit.html.erb +6 -0
- data/rails_generators/lockdown_all/templates/app/views/users/index.html.erb +22 -0
- data/rails_generators/lockdown_all/templates/app/views/users/new.html.erb +5 -0
- data/rails_generators/lockdown_all/templates/app/views/users/show.html.erb +4 -0
- data/rails_generators/lockdown_all/templates/db/migrate/create_permissions.rb +15 -0
- data/rails_generators/lockdown_all/templates/db/migrate/create_profile.rb +19 -0
- data/rails_generators/lockdown_all/templates/db/migrate/create_user_groups.rb +15 -0
- data/rails_generators/lockdown_all/templates/db/migrate/create_users.rb +20 -0
- data/website/index.html +1 -1
- metadata +36 -1
data/History.txt
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
== 0.1.
|
|
1
|
+
== 0.1.3 2008-04-25
|
|
2
|
+
* Still Don't have correct dependencies. Added in first crack at lockdown_all generator.
|
|
3
|
+
|
|
4
|
+
== 0.1.2 2008-04-25
|
|
5
|
+
* Didn't have correct dependencies.
|
|
6
|
+
|
|
7
|
+
== 0.1.1 2008-04-24
|
|
2
8
|
* Fixed bug with session cleanup.
|
|
3
9
|
|
|
4
10
|
== 0.1.0 2008-04-18
|
data/Manifest.txt
CHANGED
|
@@ -20,6 +20,39 @@ lib/lockdown/helper.rb
|
|
|
20
20
|
lib/lockdown/model.rb
|
|
21
21
|
lib/lockdown/version.rb
|
|
22
22
|
lib/lockdown/view.rb
|
|
23
|
+
rails_generators/lockdown_all/USAGE
|
|
24
|
+
rails_generators/lockdown_all/lockdown_all_generator.rb
|
|
25
|
+
rails_generators/lockdown_all/templates/app/controllers/permissions_controller.rb
|
|
26
|
+
rails_generators/lockdown_all/templates/app/controllers/sessions_controller.rb
|
|
27
|
+
rails_generators/lockdown_all/templates/app/controllers/user_groups_controller.rb
|
|
28
|
+
rails_generators/lockdown_all/templates/app/controllers/users_controller.rb
|
|
29
|
+
rails_generators/lockdown_all/templates/app/helpers/permissions_helper.rb
|
|
30
|
+
rails_generators/lockdown_all/templates/app/helpers/user_groups_helper.rb
|
|
31
|
+
rails_generators/lockdown_all/templates/app/helpers/users_helper.rb
|
|
32
|
+
rails_generators/lockdown_all/templates/app/models/permission.rb
|
|
33
|
+
rails_generators/lockdown_all/templates/app/models/user.rb
|
|
34
|
+
rails_generators/lockdown_all/templates/app/models/user_group.rb
|
|
35
|
+
rails_generators/lockdown_all/templates/app/views/permissions/_data.html.erb
|
|
36
|
+
rails_generators/lockdown_all/templates/app/views/permissions/index.html.erb
|
|
37
|
+
rails_generators/lockdown_all/templates/app/views/permissions/show.html.erb
|
|
38
|
+
rails_generators/lockdown_all/templates/app/views/sessions/new.html.erb
|
|
39
|
+
rails_generators/lockdown_all/templates/app/views/user_groups/_data.html.erb
|
|
40
|
+
rails_generators/lockdown_all/templates/app/views/user_groups/_form.html.erb
|
|
41
|
+
rails_generators/lockdown_all/templates/app/views/user_groups/edit.html.erb
|
|
42
|
+
rails_generators/lockdown_all/templates/app/views/user_groups/index.html.erb
|
|
43
|
+
rails_generators/lockdown_all/templates/app/views/user_groups/new.html.erb
|
|
44
|
+
rails_generators/lockdown_all/templates/app/views/user_groups/show.html.erb
|
|
45
|
+
rails_generators/lockdown_all/templates/app/views/users/_data.html.erb
|
|
46
|
+
rails_generators/lockdown_all/templates/app/views/users/_form.html.erb
|
|
47
|
+
rails_generators/lockdown_all/templates/app/views/users/_password.html.erb
|
|
48
|
+
rails_generators/lockdown_all/templates/app/views/users/edit.html.erb
|
|
49
|
+
rails_generators/lockdown_all/templates/app/views/users/index.html.erb
|
|
50
|
+
rails_generators/lockdown_all/templates/app/views/users/new.html.erb
|
|
51
|
+
rails_generators/lockdown_all/templates/app/views/users/show.html.erb
|
|
52
|
+
rails_generators/lockdown_all/templates/db/migrate/create_permissions.rb
|
|
53
|
+
rails_generators/lockdown_all/templates/db/migrate/create_profile.rb
|
|
54
|
+
rails_generators/lockdown_all/templates/db/migrate/create_user_groups.rb
|
|
55
|
+
rails_generators/lockdown_all/templates/db/migrate/create_users.rb
|
|
23
56
|
script/console
|
|
24
57
|
script/destroy
|
|
25
58
|
script/generate
|
|
@@ -31,7 +64,9 @@ tasks/website.rake
|
|
|
31
64
|
test/test_generator_helper.rb
|
|
32
65
|
test/test_helper.rb
|
|
33
66
|
test/test_lockdown.rb
|
|
67
|
+
test/test_lockdown_all_generator.rb
|
|
34
68
|
test/test_lockdown_generator.rb
|
|
69
|
+
test/test_lockdown_models_generator.rb
|
|
35
70
|
website/index.html
|
|
36
71
|
website/index.txt
|
|
37
72
|
website/javascripts/rounded_corners_lite.inc.js
|
data/config/hoe.rb
CHANGED
|
@@ -9,7 +9,6 @@ HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
|
|
9
9
|
DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}"
|
|
10
10
|
EXTRA_DEPENDENCIES = [
|
|
11
11
|
['rubigen', '>=1.2.4']
|
|
12
|
-
# ['activesupport', '>= 1.3.1']
|
|
13
12
|
] # An array of rubygem dependencies [name, version]
|
|
14
13
|
|
|
15
14
|
@config_file = "~/.rubyforge/user-config.yml"
|
data/lib/lockdown/version.rb
CHANGED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
class LockdownAllGenerator < RubiGen::Base
|
|
2
|
+
|
|
3
|
+
default_options :author => nil
|
|
4
|
+
|
|
5
|
+
attr_reader :name
|
|
6
|
+
|
|
7
|
+
def initialize(runtime_args, runtime_options = {})
|
|
8
|
+
super
|
|
9
|
+
usage if args.empty?
|
|
10
|
+
@name = args.shift
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def manifest
|
|
14
|
+
record do |m|
|
|
15
|
+
# Ensure appropriate folder(s) exists
|
|
16
|
+
m.directory 'app/helpers'
|
|
17
|
+
m.directory 'app/models'
|
|
18
|
+
m.directory 'app/views'
|
|
19
|
+
m.directory 'app/views/users'
|
|
20
|
+
m.directory 'app/views/user_groups'
|
|
21
|
+
m.directory 'app/views/permissions'
|
|
22
|
+
m.directory 'app/views/sessions'
|
|
23
|
+
m.directory 'app/controllers'
|
|
24
|
+
|
|
25
|
+
#Controllers
|
|
26
|
+
m.file "app/controllers/permissions_controller.rb", "app/controllers/permissions_controller.rb"
|
|
27
|
+
m.file "app/controllers/users_controller.rb", "app/controllers/users_controller.rb"
|
|
28
|
+
m.file "app/controllers/user_groups_controller.rb", "app/controllers/user_groups_controller.rb"
|
|
29
|
+
|
|
30
|
+
#Models
|
|
31
|
+
m.file "app/models/permission.rb", "app/models/permission.rb"
|
|
32
|
+
m.file "app/models/user.rb", "app/models/user.rb"
|
|
33
|
+
m.file "app/models/user_group.rb", "app/models/user_group.rb"
|
|
34
|
+
|
|
35
|
+
#Helpers
|
|
36
|
+
m.file "app/helpers/permissions_helper.rb", "app/helpers/permissions_helper.rb"
|
|
37
|
+
m.file "app/helpers/users_helper.rb", "app/helpers/users_helper.rb"
|
|
38
|
+
m.file "app/helpers/user_groups_helper.rb", "app/helpers/user_groups_helper.rb"
|
|
39
|
+
|
|
40
|
+
#Views
|
|
41
|
+
copy_views(m, "users")
|
|
42
|
+
m.file "app/views/users/_password.html.erb", "app/views/users/_password.html.erb"
|
|
43
|
+
|
|
44
|
+
copy_views(m, "user_groups")
|
|
45
|
+
|
|
46
|
+
copy_views(m, "permissions")
|
|
47
|
+
|
|
48
|
+
m.file "app/views/sessions/new.html.erb", "app/views/sessions/new.html.erb"
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
protected
|
|
53
|
+
def banner
|
|
54
|
+
<<-EOS
|
|
55
|
+
Creates a ...
|
|
56
|
+
|
|
57
|
+
USAGE: #{$0} #{spec.name} name
|
|
58
|
+
EOS
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def copy_views(m, vw)
|
|
62
|
+
m.file "app/views/#{vw}/_data.html.erb", "app/views/#{vw}/_data.html.erb"
|
|
63
|
+
m.file "app/views/#{vw}/_form.html.erb", "app/views/#{vw}/_form.html.erb"
|
|
64
|
+
m.file "app/views/#{vw}/index.html.erb", "app/views/#{vw}/index.html.erb"
|
|
65
|
+
m.file "app/views/#{vw}/show.html.erb", "app/views/#{vw}/show.html.erb"
|
|
66
|
+
m.file "app/views/#{vw}/edit.html.erb", "app/views/#{vw}/edit.html.erb"
|
|
67
|
+
m.file "app/views/#{vw}/new.html.erb", "app/views/#{vw}/new.html.erb"
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class PermissionsController < ApplicationController
|
|
2
|
+
# GET /permissions
|
|
3
|
+
# GET /permissions.xml
|
|
4
|
+
def index
|
|
5
|
+
@permissions = Permission.find(:all)
|
|
6
|
+
|
|
7
|
+
respond_to do |format|
|
|
8
|
+
format.html # index.html.erb
|
|
9
|
+
format.xml { render :xml => @permissions }
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# GET /permissions/1
|
|
14
|
+
# GET /permissions/1.xml
|
|
15
|
+
def show
|
|
16
|
+
@permission = Permission.find(params[:id])
|
|
17
|
+
respond_to do |format|
|
|
18
|
+
format.html # show.html.erb
|
|
19
|
+
format.xml { render :xml => @permission }
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
def password_authentication(login, password)
|
|
20
|
+
set_session_user(User.authenticate(login, password))
|
|
21
|
+
if logged_in?
|
|
22
|
+
successful_login
|
|
23
|
+
else
|
|
24
|
+
failed_login
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def failed_login(message = 'Authentication failed.')
|
|
29
|
+
flash[:error] = message
|
|
30
|
+
redirect_back_or_default login_url
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def successful_login
|
|
34
|
+
flash[:notice] = "Logged in successfully"
|
|
35
|
+
redirect_back_or_default "/"
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
class UserGroupsController < ApplicationController
|
|
2
|
+
before_filter :find_user_group, :only => [:show, :edit, :update, :destroy]
|
|
3
|
+
before_filter :protect_private, :only => [:edit, :update]
|
|
4
|
+
after_filter :update_permissions, :only => [:create, :update]
|
|
5
|
+
|
|
6
|
+
# GET /user_groups
|
|
7
|
+
# GET /user_groups.xml
|
|
8
|
+
def index
|
|
9
|
+
@user_groups = UserGroup.find(:all)
|
|
10
|
+
|
|
11
|
+
respond_to do |format|
|
|
12
|
+
format.html # index.html.erb
|
|
13
|
+
format.xml { render :xml => @user_groups }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# GET /user_groups/1
|
|
18
|
+
# GET /user_groups/1.xml
|
|
19
|
+
def show
|
|
20
|
+
respond_to do |format|
|
|
21
|
+
format.html # show.html.erb
|
|
22
|
+
format.xml { render :xml => @user_group }
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# GET /user_groups/new
|
|
27
|
+
# GET /user_groups/new.xml
|
|
28
|
+
def new
|
|
29
|
+
@user_group = UserGroup.new
|
|
30
|
+
@all_permissions = Permission.all_but_public
|
|
31
|
+
|
|
32
|
+
respond_to do |format|
|
|
33
|
+
format.html # new.html.erb
|
|
34
|
+
format.xml { render :xml => @user_group }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# GET /user_groups/1/edit
|
|
39
|
+
def edit
|
|
40
|
+
@all_permissions = Permission.all_but_public
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# POST /user_groups
|
|
44
|
+
# POST /user_groups.xml
|
|
45
|
+
def create
|
|
46
|
+
@user_group = UserGroup.new(params[:user_group])
|
|
47
|
+
|
|
48
|
+
respond_to do |format|
|
|
49
|
+
if @user_group.save
|
|
50
|
+
flash[:notice] = 'UserGroup was successfully created.'
|
|
51
|
+
format.html { redirect_to(@user_group) }
|
|
52
|
+
format.xml { render :xml => @user_group, :status => :created, :location => @user_group }
|
|
53
|
+
else
|
|
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
|
+
format.html { render :action => "edit" }
|
|
70
|
+
format.xml { render :xml => @user_group.errors, :status => :unprocessable_entity }
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# DELETE /user_groups/1
|
|
76
|
+
# DELETE /user_groups/1.xml
|
|
77
|
+
def destroy
|
|
78
|
+
@user_group.destroy
|
|
79
|
+
|
|
80
|
+
respond_to do |format|
|
|
81
|
+
format.html { redirect_to(user_groups_url) }
|
|
82
|
+
format.xml { head :ok }
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
def find_user_group
|
|
89
|
+
@user_group = UserGroup.find(params[:id])
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def protect_private
|
|
93
|
+
@user_group.protect_private
|
|
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
|
|
@@ -0,0 +1,124 @@
|
|
|
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.all
|
|
8
|
+
logger.info "===============> access rights: #{session[:access_rights].join("\n")}" unless session[:access_rights] == :all
|
|
9
|
+
logger.info "===============> is: #{current_user_is_admin?}"
|
|
10
|
+
respond_to do |format|
|
|
11
|
+
format.html # index.html.erb
|
|
12
|
+
format.xml { render :xml => @users }
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# GET /users/1
|
|
17
|
+
# GET /users/1.xml
|
|
18
|
+
def show
|
|
19
|
+
respond_to do |format|
|
|
20
|
+
format.html # show.html.erb
|
|
21
|
+
format.xml { render :xml => @user }
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# GET /users/new
|
|
26
|
+
# GET /users/new.xml
|
|
27
|
+
def new
|
|
28
|
+
@user = User.new
|
|
29
|
+
@profile = Profile.new
|
|
30
|
+
@user_groups_for_user = UserGroup.find_assignable_for_user(current_user)
|
|
31
|
+
respond_to do |format|
|
|
32
|
+
format.html # new.html.erb
|
|
33
|
+
format.xml { render :xml => @user }
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# GET /users/1/edit
|
|
38
|
+
def edit
|
|
39
|
+
@user_groups_for_user = UserGroup.find_assignable_for_user(current_user)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# POST /users
|
|
43
|
+
# POST /users.xml
|
|
44
|
+
def create
|
|
45
|
+
@user = User.new(params[:user])
|
|
46
|
+
@profile = Profile.new(params[:profile])
|
|
47
|
+
|
|
48
|
+
@user.profile = @profile
|
|
49
|
+
if @user.save
|
|
50
|
+
flash[:notice] = "Thanks for signing up!"
|
|
51
|
+
redirect_to(users_path)
|
|
52
|
+
else
|
|
53
|
+
flash[:error] = "Please correct the following issues"
|
|
54
|
+
render :action => "new"
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# PUT /users/1
|
|
59
|
+
# PUT /users/1.xml
|
|
60
|
+
def update
|
|
61
|
+
@user.profile.attributes = params[:profile]
|
|
62
|
+
@user.attributes = params[:user]
|
|
63
|
+
|
|
64
|
+
respond_to do |format|
|
|
65
|
+
if @user.save
|
|
66
|
+
flash[:notice] = 'User was successfully updated.'
|
|
67
|
+
format.html { redirect_to(@user) }
|
|
68
|
+
format.xml { head :ok }
|
|
69
|
+
else
|
|
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 g.system_assigned?
|
|
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
|