ums 0.0.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.
- checksums.yaml +7 -0
- data/README.rdoc +3 -0
- data/Rakefile +34 -0
- data/app/assets/javascripts/ums/application.js +13 -0
- data/app/assets/stylesheets/ums/application.css +13 -0
- data/app/controllers/ums/application_controller.rb +5 -0
- data/app/controllers/ums/functions_controller.rb +74 -0
- data/app/controllers/ums/logs_controller.rb +9 -0
- data/app/controllers/ums/roles_controller.rb +86 -0
- data/app/controllers/ums/users_controller.rb +177 -0
- data/app/helpers/ums/application_helper.rb +46 -0
- data/app/helpers/ums/functions_helper.rb +2 -0
- data/app/helpers/ums/logs_helper.rb +2 -0
- data/app/helpers/ums/roles_helper.rb +2 -0
- data/app/helpers/ums/users_helper.rb +2 -0
- data/app/models/ums.rb +5 -0
- data/app/models/ums/function.rb +5 -0
- data/app/models/ums/log.rb +2 -0
- data/app/models/ums/role.rb +4 -0
- data/app/models/ums/user.rb +53 -0
- data/app/views/layouts/ums/application.html.erb +14 -0
- data/app/views/ums/functions/_form.html.erb +31 -0
- data/app/views/ums/functions/edit.html.erb +3 -0
- data/app/views/ums/functions/index.html.erb +33 -0
- data/app/views/ums/functions/new.html.erb +5 -0
- data/app/views/ums/logs/index.html.erb +29 -0
- data/app/views/ums/roles/_form.html.erb +32 -0
- data/app/views/ums/roles/edit.html.erb +3 -0
- data/app/views/ums/roles/index.html.erb +36 -0
- data/app/views/ums/roles/new.html.erb +4 -0
- data/app/views/ums/users/_form.html.erb +41 -0
- data/app/views/ums/users/edit.html.erb +3 -0
- data/app/views/ums/users/index.html.erb +43 -0
- data/app/views/ums/users/login.html.erb +22 -0
- data/app/views/ums/users/logout.html.erb +2 -0
- data/app/views/ums/users/new.html.erb +3 -0
- data/app/views/ums/users/password.html.erb +26 -0
- data/app/views/ums/users/profile.html.erb +30 -0
- data/config/routes.rb +13 -0
- data/db/migrate/20131016015419_create_ums_functions.rb +11 -0
- data/db/migrate/20131016015456_create_ums_roles.rb +9 -0
- data/db/migrate/20131016015833_create_ums_users.rb +17 -0
- data/db/migrate/20131016020202_create_ums_logs.rb +12 -0
- data/db/migrate/20131016020423_create_ums_functions_roles.rb +8 -0
- data/db/seeds.rb +11 -0
- data/lib/tasks/ums_tasks.rake +4 -0
- data/lib/ums.rb +4 -0
- data/lib/ums/engine.rb +5 -0
- data/lib/ums/version.rb +3 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/ums_test.rb +7 -0
- metadata +201 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 272ed6c390ebe0b96fff511b1e2e3ffe7eda162f
|
|
4
|
+
data.tar.gz: ee84462764d1d8368553dc8c4878dff2c2b665a7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: af4f78d9f7651fae64fde42e4e250a2b9797564daf06cfebeb81dbeeb8d37bf7cbbac39c5c632313667b1af0f987c291b2f6acc3cbaa61e5a295b0e68938263d
|
|
7
|
+
data.tar.gz: 6b6db9df31ab86f4e8044e4cbbe105c472b482b34add3bcfd3e62820334d9eb15de0d463e7d8b35acc88dc841b7debf25ab0470a430bcc4cb21cecab45283764
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require 'bundler/setup'
|
|
3
|
+
rescue LoadError
|
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
require 'rdoc/task'
|
|
8
|
+
|
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
11
|
+
rdoc.title = 'Ums'
|
|
12
|
+
rdoc.options << '--line-numbers'
|
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
|
18
|
+
load 'rails/tasks/engine.rake'
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
Bundler::GemHelper.install_tasks
|
|
23
|
+
|
|
24
|
+
require 'rake/testtask'
|
|
25
|
+
|
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
|
27
|
+
t.libs << 'lib'
|
|
28
|
+
t.libs << 'test'
|
|
29
|
+
t.pattern = 'test/**/*_test.rb'
|
|
30
|
+
t.verbose = false
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
task default: :test
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
|
2
|
+
// listed below.
|
|
3
|
+
//
|
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
|
6
|
+
//
|
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
8
|
+
// compiled file.
|
|
9
|
+
//
|
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
|
11
|
+
// about supported directives.
|
|
12
|
+
//
|
|
13
|
+
//= require_tree .
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
|
3
|
+
* listed below.
|
|
4
|
+
*
|
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
|
7
|
+
*
|
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
|
10
|
+
*
|
|
11
|
+
*= require_self
|
|
12
|
+
*= require_tree .
|
|
13
|
+
*/
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
class Ums::FunctionsController < ApplicationController
|
|
2
|
+
before_action :set_ums_function, only: [:show, :edit, :update, :destroy]
|
|
3
|
+
|
|
4
|
+
# GET /ums/functions
|
|
5
|
+
# GET /ums/functions.json
|
|
6
|
+
def index
|
|
7
|
+
@ums_functions = Ums::Function.all
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# GET /ums/functions/1
|
|
11
|
+
# GET /ums/functions/1.json
|
|
12
|
+
def show
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# GET /ums/functions/new
|
|
16
|
+
def new
|
|
17
|
+
@ums_function = Ums::Function.new
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# GET /ums/functions/1/edit
|
|
21
|
+
def edit
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# POST /ums/functions
|
|
25
|
+
# POST /ums/functions.json
|
|
26
|
+
def create
|
|
27
|
+
@ums_function = Ums::Function.new(ums_function_params)
|
|
28
|
+
|
|
29
|
+
respond_to do |format|
|
|
30
|
+
if @ums_function.save
|
|
31
|
+
format.html { redirect_to ums.functions_url, notice: 'Function was successfully created.' }
|
|
32
|
+
format.json { render action: 'show', status: :created, location: @ums_function }
|
|
33
|
+
else
|
|
34
|
+
format.html { render action: 'new' }
|
|
35
|
+
format.json { render json: @ums_function.errors, status: :unprocessable_entity }
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# PATCH/PUT /ums/functions/1
|
|
41
|
+
# PATCH/PUT /ums/functions/1.json
|
|
42
|
+
def update
|
|
43
|
+
respond_to do |format|
|
|
44
|
+
if @ums_function.update(ums_function_params)
|
|
45
|
+
format.html { redirect_to ums.functions_url, notice: 'Function was successfully updated.' }
|
|
46
|
+
format.json { head :no_content }
|
|
47
|
+
else
|
|
48
|
+
format.html { render action: 'edit' }
|
|
49
|
+
format.json { render json: @ums_function.errors, status: :unprocessable_entity }
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# DELETE /ums/functions/1
|
|
55
|
+
# DELETE /ums/functions/1.json
|
|
56
|
+
def destroy
|
|
57
|
+
@ums_function.destroy
|
|
58
|
+
respond_to do |format|
|
|
59
|
+
format.html { redirect_to ums.functions_url }
|
|
60
|
+
format.json { head :no_content }
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
# Use callbacks to share common setup or constraints between actions.
|
|
66
|
+
def set_ums_function
|
|
67
|
+
@ums_function = Ums::Function.find(params[:id])
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# Never trust parameters from the scary internet, only allow the white list through.
|
|
71
|
+
def ums_function_params
|
|
72
|
+
params.require(:function).permit(:name, :controller, :action)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
class Ums::RolesController < ApplicationController
|
|
2
|
+
before_action :set_ums_role, only: [:show, :edit, :update, :destroy]
|
|
3
|
+
before_action :set_ums_functions, only: [:new,:edit,:update,:create]
|
|
4
|
+
before_action :init_function_ids, only: [:create, :update]
|
|
5
|
+
# GET /ums/roles
|
|
6
|
+
# GET /ums/roles.json
|
|
7
|
+
def index
|
|
8
|
+
@ums_roles = Ums::Role.all
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# GET /ums/roles/1
|
|
12
|
+
# GET /ums/roles/1.json
|
|
13
|
+
def show
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# GET /ums/roles/new
|
|
17
|
+
def new
|
|
18
|
+
@ums_role = Ums::Role.new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# GET /ums/roles/1/edit
|
|
22
|
+
def edit
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# POST /ums/roles
|
|
26
|
+
# POST /ums/roles.json
|
|
27
|
+
def create
|
|
28
|
+
@ums_role = Ums::Role.new(ums_role_params)
|
|
29
|
+
|
|
30
|
+
respond_to do |format|
|
|
31
|
+
if @ums_role.save
|
|
32
|
+
format.html { redirect_to ums.roles_url, notice: 'Role was successfully created.' }
|
|
33
|
+
format.json { render action: 'show', status: :created, location: @ums_role }
|
|
34
|
+
else
|
|
35
|
+
format.html { render action: 'new' }
|
|
36
|
+
format.json { render json: @ums_role.errors, status: :unprocessable_entity }
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# PATCH/PUT /ums/roles/1
|
|
42
|
+
# PATCH/PUT /ums/roles/1.json
|
|
43
|
+
def update
|
|
44
|
+
respond_to do |format|
|
|
45
|
+
if @ums_role.update(ums_role_params)
|
|
46
|
+
format.html { redirect_to ums.roles_url, notice: 'Role was successfully updated.' }
|
|
47
|
+
format.json { head :no_content }
|
|
48
|
+
else
|
|
49
|
+
format.html { render action: 'edit' }
|
|
50
|
+
format.json { render json: @ums_role.errors, status: :unprocessable_entity }
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# DELETE /ums/roles/1
|
|
56
|
+
# DELETE /ums/roles/1.json
|
|
57
|
+
def destroy
|
|
58
|
+
if Ums::User.find_by_role_id(@ums_role.id)
|
|
59
|
+
flash[:error] = "该角色还有关联用户,不能删除"
|
|
60
|
+
else
|
|
61
|
+
@ums_role.destroy
|
|
62
|
+
end
|
|
63
|
+
respond_to do |format|
|
|
64
|
+
format.html { redirect_to ums.roles_url }
|
|
65
|
+
format.json { head :no_content }
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
private
|
|
70
|
+
# Use callbacks to share common setup or constraints between actions.
|
|
71
|
+
def set_ums_role
|
|
72
|
+
@ums_role = Ums::Role.find(params[:id])
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Never trust parameters from the scary internet, only allow the white list through.
|
|
76
|
+
def ums_role_params
|
|
77
|
+
params.require(:role).permit(:name,{:function_ids => []})
|
|
78
|
+
end
|
|
79
|
+
def set_ums_functions
|
|
80
|
+
@ums_functions = Ums::Function.all
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def init_function_ids
|
|
84
|
+
params[:role][:function_ids] ||= []
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
class Ums::UsersController < ApplicationController
|
|
2
|
+
|
|
3
|
+
skip_before_filter :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }
|
|
4
|
+
skip_before_filter :authorize, :only => [:login,:logout,:profile,:password]
|
|
5
|
+
|
|
6
|
+
before_action :set_ums_user, only: [:show, :edit, :update, :destroy]
|
|
7
|
+
before_action :set_ums_roles, only: [:new,:edit,:update,:create]
|
|
8
|
+
# GET /ums/users
|
|
9
|
+
# GET /ums/users.json
|
|
10
|
+
|
|
11
|
+
def login
|
|
12
|
+
if request.post?
|
|
13
|
+
#account = Account.authenticate(params[:login_name],params[:password])
|
|
14
|
+
user = Ums::User.authenticate(params[:login_name],params[:password])
|
|
15
|
+
if user
|
|
16
|
+
login_count = user.login_count
|
|
17
|
+
login_count = 0 if login_count.nil?
|
|
18
|
+
login_count += 1
|
|
19
|
+
user.last_login_time = Time.now
|
|
20
|
+
user.last_login_ip = request.remote_ip
|
|
21
|
+
user.login_count = login_count
|
|
22
|
+
user.save(validate: false)
|
|
23
|
+
|
|
24
|
+
session[:user_id] = user.id
|
|
25
|
+
session[:user_name] = user.name
|
|
26
|
+
|
|
27
|
+
uri = session[:original_uri]
|
|
28
|
+
session[:original_uri] = nil
|
|
29
|
+
log_info("login",params[:login_name] + " login success",request.remote_ip)
|
|
30
|
+
|
|
31
|
+
user_permission = '^redactor_rails|' # 上传组件
|
|
32
|
+
user.role.functions.each do |function|
|
|
33
|
+
if function.action.blank?
|
|
34
|
+
user_permission += '^' + function.controller
|
|
35
|
+
else
|
|
36
|
+
user_permission += function.controller + "/" + function.action
|
|
37
|
+
end
|
|
38
|
+
user_permission += "|"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
user_permission.chop! unless user_permission.blank?
|
|
42
|
+
session[:user_permission] = user_permission
|
|
43
|
+
|
|
44
|
+
respond_to do |format|
|
|
45
|
+
format.html { redirect_to uri || main_index_path }
|
|
46
|
+
format.json { render json: {is_success:"true",message:""} }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
else
|
|
50
|
+
log_error("login",params[:login_name] + " login failed",request.remote_ip)
|
|
51
|
+
respond_to do |format|
|
|
52
|
+
error_info = "无效的账号或密码"
|
|
53
|
+
format.html { flash.now[:notice] = error_info }
|
|
54
|
+
format.json { render json: {is_success:"false",message:error_info} }
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def logout
|
|
62
|
+
session[:user_id] = nil
|
|
63
|
+
session[:user_name] = nil
|
|
64
|
+
|
|
65
|
+
#flash[:notice] = "已退出"
|
|
66
|
+
redirect_to '/' #main_index_path
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def password
|
|
70
|
+
if request.post?
|
|
71
|
+
if params[:new_password].blank?
|
|
72
|
+
flash.now[:error] = "新密码不能为空"
|
|
73
|
+
return
|
|
74
|
+
end
|
|
75
|
+
if params[:new_password] != params[:re_password]
|
|
76
|
+
flash.now[:error] = "两次新密码输入不一致"
|
|
77
|
+
return
|
|
78
|
+
end
|
|
79
|
+
if params[:new_password].blank?
|
|
80
|
+
flash.now[:error] = "新密码不能为空"
|
|
81
|
+
return
|
|
82
|
+
end
|
|
83
|
+
user = Ums::User.find_by_id(session[:user_id])
|
|
84
|
+
if user.verify_password(params[:old_password])
|
|
85
|
+
user.password=params[:new_password]
|
|
86
|
+
user.save
|
|
87
|
+
flash.now[:notice] = "密码修改成功"
|
|
88
|
+
params.delete(:new_password)
|
|
89
|
+
params.delete(:old_password)
|
|
90
|
+
params.delete(:re_password)
|
|
91
|
+
else
|
|
92
|
+
flash.now[:error] = "旧密码输入错误"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def profile
|
|
98
|
+
@ums_user = Ums::User.find_by_id(session[:user_id])
|
|
99
|
+
if request.patch?
|
|
100
|
+
if @ums_user.update(params.require(:user).permit(:email))
|
|
101
|
+
flash.now[:notice] = "资料修改成功"
|
|
102
|
+
else
|
|
103
|
+
flash.now[:error] = "资料修改失败"
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def index
|
|
109
|
+
@ums_users = Ums::User.all
|
|
110
|
+
end
|
|
111
|
+
def show
|
|
112
|
+
end
|
|
113
|
+
# GET /ums/users/new
|
|
114
|
+
def new
|
|
115
|
+
@ums_user = Ums::User.new
|
|
116
|
+
@ums_user.is_enabled = true
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# GET /ums/users/1/edit
|
|
120
|
+
def edit
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# POST /ums/users
|
|
124
|
+
# POST /ums/users.json
|
|
125
|
+
def create
|
|
126
|
+
@ums_user = Ums::User.new(ums_user_params)
|
|
127
|
+
|
|
128
|
+
respond_to do |format|
|
|
129
|
+
if @ums_user.save
|
|
130
|
+
format.html { redirect_to ums.users_url, notice: 'User was successfully created.' }
|
|
131
|
+
format.json { render action: 'show', status: :created, location: @ums_user }
|
|
132
|
+
else
|
|
133
|
+
format.html { render action: 'new' }
|
|
134
|
+
format.json { render json: @ums_user.errors, status: :unprocessable_entity }
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# PATCH/PUT /ums/users/1
|
|
140
|
+
# PATCH/PUT /ums/users/1.json
|
|
141
|
+
def update
|
|
142
|
+
respond_to do |format|
|
|
143
|
+
if @ums_user.update(ums_user_params)
|
|
144
|
+
format.html { redirect_to ums.users_url, notice: 'User was successfully updated.' }
|
|
145
|
+
format.json { head :no_content }
|
|
146
|
+
else
|
|
147
|
+
format.html { render action: 'edit' }
|
|
148
|
+
format.json { render json: @ums_user.errors, status: :unprocessable_entity }
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# DELETE /ums/users/1
|
|
154
|
+
# DELETE /ums/users/1.json
|
|
155
|
+
def destroy
|
|
156
|
+
@ums_user.destroy
|
|
157
|
+
respond_to do |format|
|
|
158
|
+
format.html { redirect_to ums.users_url }
|
|
159
|
+
format.json { head :no_content }
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
private
|
|
164
|
+
# Use callbacks to share common setup or constraints between actions.
|
|
165
|
+
def set_ums_user
|
|
166
|
+
@ums_user = Ums::User.find(params[:id])
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Never trust parameters from the scary internet, only allow the white list through.
|
|
170
|
+
def ums_user_params
|
|
171
|
+
params.require(:user).permit(:name, :email, :password, :role_id, :is_enabled)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def set_ums_roles
|
|
175
|
+
@ums_roles = Ums::Role.all
|
|
176
|
+
end
|
|
177
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Ums
|
|
2
|
+
module ApplicationHelper
|
|
3
|
+
|
|
4
|
+
def authorize
|
|
5
|
+
#unless Account.find_by_id(session[:account_id])
|
|
6
|
+
if session[:user_id].nil?
|
|
7
|
+
session[:original_uri] = request.url
|
|
8
|
+
#flash[:notice] = "Please log in"
|
|
9
|
+
redirect_to ums.users_login_url
|
|
10
|
+
return
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
path = params[:controller] + "/" + params[:action]
|
|
14
|
+
unless validate_permission(path)
|
|
15
|
+
render status: :forbidden, text: "访问被拒绝"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def log_info(log_type,log_content,log_ip)
|
|
20
|
+
log = Ums::Log.new
|
|
21
|
+
log.level="info"
|
|
22
|
+
log.log_type=log_type
|
|
23
|
+
log.data=log_content
|
|
24
|
+
log.ip=log_ip
|
|
25
|
+
log.save
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def log_error(log_type,log_content,log_ip)
|
|
29
|
+
log = Ums::Log.new
|
|
30
|
+
log.level="error"
|
|
31
|
+
log.log_type=log_type
|
|
32
|
+
log.data=log_content
|
|
33
|
+
log.ip=log_ip
|
|
34
|
+
log.save
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def validate_permission(path)
|
|
38
|
+
permission = session[:user_permission]
|
|
39
|
+
|
|
40
|
+
logger.debug("user_permission:" + permission) unless permission.nil?
|
|
41
|
+
logger.debug("user_path:" + path) unless path.nil?
|
|
42
|
+
return false if permission.nil? || path.nil?
|
|
43
|
+
return path.match(permission)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|