proxes 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -1
- data/.travis.yml +0 -3
- data/Gemfile.ci +5 -2
- data/README.md +12 -9
- data/Rakefile +10 -5
- data/Vagrantfile +1 -4
- data/config.ru +32 -24
- data/lib/{proxes → ditty/components}/proxes.rb +26 -33
- data/lib/proxes/controllers/permissions.rb +4 -3
- data/lib/proxes/models/permission.rb +7 -5
- data/lib/proxes/policies/permission_policy.rb +4 -4
- data/lib/proxes/policies/request/index_policy.rb +1 -1
- data/lib/proxes/policies/request_policy.rb +3 -4
- data/lib/proxes/policies/token_policy.rb +1 -1
- data/lib/proxes/request/cat.rb +2 -2
- data/lib/proxes/request/index.rb +2 -2
- data/lib/proxes/request.rb +1 -1
- data/lib/proxes/security.rb +10 -12
- data/lib/proxes/version.rb +1 -1
- data/lib/proxes.rb +1 -3
- data/migrate/20170207_base_tables.rb +2 -1
- data/migrate/20170208_audit_log.rb +1 -0
- data/proxes.gemspec +15 -14
- data/public/js/bundle.js +44683 -23940
- data/public/js/vendors.js +1 -0
- data/views/permissions/form.haml +2 -2
- data/views/permissions/index.haml +14 -9
- metadata +69 -108
- data/lib/proxes/container.rb +0 -135
- data/lib/proxes/controllers/app.rb +0 -80
- data/lib/proxes/controllers/application.rb +0 -80
- data/lib/proxes/controllers/audit_logs.rb +0 -44
- data/lib/proxes/controllers/component.rb +0 -167
- data/lib/proxes/controllers/roles.rb +0 -16
- data/lib/proxes/controllers/users.rb +0 -183
- data/lib/proxes/db.rb +0 -18
- data/lib/proxes/helpers/authentication.rb +0 -58
- data/lib/proxes/helpers/component.rb +0 -49
- data/lib/proxes/helpers/pundit.rb +0 -40
- data/lib/proxes/helpers/views.rb +0 -42
- data/lib/proxes/helpers/wisper.rb +0 -15
- data/lib/proxes/listener.rb +0 -23
- data/lib/proxes/models/audit_log.rb +0 -14
- data/lib/proxes/models/base.rb +0 -9
- data/lib/proxes/models/identity.rb +0 -70
- data/lib/proxes/models/role.rb +0 -17
- data/lib/proxes/models/user.rb +0 -64
- data/lib/proxes/omniauth.rb +0 -4
- data/lib/proxes/policies/application_policy.rb +0 -21
- data/lib/proxes/policies/audit_log_policy.rb +0 -41
- data/lib/proxes/policies/identity_policy.rb +0 -25
- data/lib/proxes/policies/role_policy.rb +0 -37
- data/lib/proxes/policies/user_policy.rb +0 -43
- data/lib/proxes/rake_tasks.rb +0 -219
- data/lib/proxes/seed.rb +0 -5
- data/lib/proxes/services/logger.rb +0 -51
- data/views/404.haml +0 -1
- data/views/audit_logs/index.haml +0 -26
- data/views/error.haml +0 -4
- data/views/getting_started.haml +0 -16
- data/views/identity/login.haml +0 -19
- data/views/identity/register.haml +0 -14
- data/views/index.haml +0 -3
- data/views/layout.haml +0 -58
- data/views/partials/delete_form.haml +0 -4
- data/views/partials/form_control.haml +0 -20
- data/views/partials/navbar.haml +0 -25
- data/views/partials/notifications.haml +0 -24
- data/views/partials/pager.haml +0 -12
- data/views/partials/sidebar.haml +0 -54
- data/views/roles/display.haml +0 -38
- data/views/roles/edit.haml +0 -11
- data/views/roles/form.haml +0 -1
- data/views/roles/index.haml +0 -20
- data/views/roles/new.haml +0 -10
- data/views/users/display.haml +0 -69
- data/views/users/edit.haml +0 -11
- data/views/users/identity.haml +0 -3
- data/views/users/index.haml +0 -23
- data/views/users/new.haml +0 -11
- data/views/users/profile.haml +0 -39
- data/views/users/user.haml +0 -3
data/views/audit_logs/index.haml
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-12
|
3
|
-
.panel.panel-default
|
4
|
-
%table.table.table-striped
|
5
|
-
%thead
|
6
|
-
%tr
|
7
|
-
%th User email
|
8
|
-
%th Action
|
9
|
-
%th Details
|
10
|
-
%th Created at
|
11
|
-
%tbody
|
12
|
-
-list.each do |entity|
|
13
|
-
%tr
|
14
|
-
%td
|
15
|
-
-if entity.user
|
16
|
-
%a{ href: "/_proxes/users/#{entity.user.id}" }= entity.user.email
|
17
|
-
-else
|
18
|
-
None
|
19
|
-
%td
|
20
|
-
= entity.action
|
21
|
-
%td
|
22
|
-
= entity.details
|
23
|
-
%td
|
24
|
-
= entity.created_at.strftime('%Y-%m-%d %H:%M:%S')
|
25
|
-
|
26
|
-
=pagination(list, base_path)
|
data/views/error.haml
DELETED
data/views/getting_started.haml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-12
|
3
|
-
.panel.panel-success
|
4
|
-
.panel-heading
|
5
|
-
You can now start using this Elasticsearch cluster:
|
6
|
-
.panel-body
|
7
|
-
%h4 Send Data
|
8
|
-
%pre
|
9
|
-
:plain
|
10
|
-
curl -X POST '#{ request.base_url }/#{ current_user.email }/test' \
|
11
|
-
-u #{ current_user.email }:yourpassword -d '{"message":"Get cracking!"}'
|
12
|
-
|
13
|
-
%h4 Search
|
14
|
-
%pre
|
15
|
-
curl -X GET '#{ request.base_url }/_search' -u #{ current_user.email }:yourpassword
|
16
|
-
|
data/views/identity/login.haml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-sm-3
|
3
|
-
.col-sm-6
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-heading
|
6
|
-
%h4 ProxES Login
|
7
|
-
.panel-body
|
8
|
-
%form{ method: 'post', action: '/_proxes/auth/identity/callback' }
|
9
|
-
.form-group
|
10
|
-
%label.control-label Username
|
11
|
-
%input.form-control.border-input{ name: 'username' }
|
12
|
-
.form-group
|
13
|
-
%label.control-label Password
|
14
|
-
%input.form-control.border-input{ name: 'password', type: 'password' }
|
15
|
-
%button.btn.btn-primary{ type: 'submit' } Log In
|
16
|
-
.pull-right
|
17
|
-
No account yet?
|
18
|
-
%a.btn.btn-default{ href: '/_proxes/auth/identity/register' } Register
|
19
|
-
.col-sm-3
|
@@ -1,14 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-heading
|
6
|
-
%h4 ProxES Registration
|
7
|
-
.panel-body
|
8
|
-
%form.form-horizontal{ method: 'post', action: '/_proxes/auth/identity/new' }
|
9
|
-
= form_control(:username, identity, label: 'Email', placeholder: 'Your email address')
|
10
|
-
= form_control(:password, identity, label: 'Password', type: :password)
|
11
|
-
= form_control(:password_confirmation, identity, label: 'Confirm Password', type: :password)
|
12
|
-
|
13
|
-
%button.btn.btn-primary{ type: 'submit' } Register
|
14
|
-
.col-md-2
|
data/views/index.haml
DELETED
data/views/layout.haml
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
!!! 5
|
2
|
-
%html{ lang: 'en' }
|
3
|
-
%head
|
4
|
-
%meta{ charset: 'utf-8' }
|
5
|
-
%meta{ 'http-equiv' => 'X-UA-Compatible', 'content' => 'IE=edge,chrome=1' }
|
6
|
-
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1' }
|
7
|
-
%meta{ name: 'theme-color', content: '#ffffff' }
|
8
|
-
%link{ rel: 'manifest', href: '/_proxes/manifest.json' }
|
9
|
-
%link{ rel: 'icon', type: 'image/png', sizes: '32x32', href: '/_proxes/images/favicon-32x32.png' }
|
10
|
-
%link{ rel: 'icon', type: 'image/png', sizes: '16x16', href: '/_proxes/images/favicon-16x16.png' }
|
11
|
-
%link{ rel: 'apple-touch-icon', sizes: '76x76', href: '/_proxes/images/apple-icon.png' }
|
12
|
-
%link{ rel: 'mask-icon', href: '/safari-pinned-tab.svg', color: '#5bbad5' }
|
13
|
-
|
14
|
-
%title
|
15
|
-
ProxES
|
16
|
-
- if defined? title
|
17
|
-
= "- #{title}"
|
18
|
-
|
19
|
-
%meta{ name: 'description', content: '' }
|
20
|
-
%meta{ name: 'author', content: '' }
|
21
|
-
|
22
|
-
/ Le styles
|
23
|
-
%link{ rel: 'stylesheet', href: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', media: 'screen' }
|
24
|
-
%link{ rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/startbootstrap-sb-admin-2/3.3.7+1/css/sb-admin-2.min.css', media: 'screen' }
|
25
|
-
%link{ rel: 'stylesheet', href: 'https://cdnjs.cloudflare.com/ajax/libs/metisMenu/2.5.2/metisMenu.min.css', media: 'screen' }
|
26
|
-
%link{ rel: 'stylesheet', href: 'https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css', media: 'screen' }
|
27
|
-
/[if lt IE 9] <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
|
28
|
-
/[if lt IE 9] <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
|
29
|
-
|
30
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js' }
|
31
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js' }
|
32
|
-
%body
|
33
|
-
#wrapper
|
34
|
-
= haml :'partials/navbar', locals: { title: (defined?(title) ? title : 'ProxES') }
|
35
|
-
#page-wrapper
|
36
|
-
.row
|
37
|
-
.col-md-12
|
38
|
-
- if cluster_health.nil?
|
39
|
-
.alert.alert-danger.text-center Cannot Connect to Cluster
|
40
|
-
-if defined? title
|
41
|
-
%h1.page-header= title
|
42
|
-
= haml :'partials/notifications'
|
43
|
-
|
44
|
-
= yield
|
45
|
-
%footer.footer.text-muted.text-center
|
46
|
-
%hr
|
47
|
-
.copyright
|
48
|
-
:plain
|
49
|
-
© <script>document.write(new Date().getFullYear())</script>, JadeIT
|
50
|
-
|
51
|
-
|
52
|
-
/ Placed at the end of the document so the pages load faster
|
53
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/startbootstrap-sb-admin-2/3.3.7+1/js/sb-admin-2.min.js' }
|
54
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/metisMenu/2.5.2/metisMenu.min.js' }
|
55
|
-
%script{ type: 'text/javascript', src: 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js' }
|
56
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react.min.js' }
|
57
|
-
%script{ type: 'text/javascript', src: 'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.min.js' }
|
58
|
-
%script{ type: 'text/javascript', src: '/_proxes/js/bundle.js' }
|
@@ -1,20 +0,0 @@
|
|
1
|
-
%div{ class: "form-group#{model.errors[field] ? ' has-error' : ''}" }
|
2
|
-
%label.col-sm-3.control-label{ for: attributes[:id] }= label
|
3
|
-
.col-sm-9
|
4
|
-
- type = attributes.delete(:type)
|
5
|
-
- if type == 'select'
|
6
|
-
- options = attributes.delete(:options)
|
7
|
-
%select{attributes}
|
8
|
-
- if attributes[:multiple]
|
9
|
-
- options.each do |k,v| k ||= v; v ||= k;
|
10
|
-
%option{ value: k, selected: (model.send(field).map(&:id).include? k)}= v
|
11
|
-
- else
|
12
|
-
%option{ value: ""} -- Select One --
|
13
|
-
- options.each do |k,v| k ||= v; v ||= k;
|
14
|
-
%option{ value: k, selected: (k.to_s == model[field].to_s)}= v
|
15
|
-
- elsif type == 'textarea'
|
16
|
-
%textarea{attributes}= preserve(model[field])
|
17
|
-
- else
|
18
|
-
%input{attributes, type: type, value: model[field]}
|
19
|
-
- if model.errors[field]
|
20
|
-
%p.help-block.text-danger= model.errors[field].join(', ')
|
data/views/partials/navbar.haml
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
.navbar.navbar-inverse.navbar-static-top{ role: 'navigation', style: 'margin-bottom: 0' }
|
2
|
-
.navbar-header
|
3
|
-
%span.navbar-brand
|
4
|
-
%a{ href: '/_proxes' }
|
5
|
-
ProxES
|
6
|
-
%button.navbar-toggle.collapsed{ 'type' => 'button', 'data-toggle' => 'collapse', 'data-target' => '#navbar', 'aria-expanded' => 'false', 'aria-controls' => 'navbar' }
|
7
|
-
%span.sr-only Toggle navigation
|
8
|
-
%span.icon-bar.bar1
|
9
|
-
%span.icon-bar.bar2
|
10
|
-
%span.icon-bar.bar3
|
11
|
-
|
12
|
-
-if authenticated?
|
13
|
-
%form.nav.navbar-top-links.navbar-form.navbar-right{ action: '/_proxes/auth/identity', method: 'post' }
|
14
|
-
%a.btn.btn-default{ href: "/_proxes/users/profile" } My Account
|
15
|
-
%input{ name: '_method', value: 'DELETE', type: 'hidden' }
|
16
|
-
%button.btn.btn-default{ type: 'submit' }
|
17
|
-
/ %i.ti-panel
|
18
|
-
Logout
|
19
|
-
- else
|
20
|
-
%ul.nav.navbar-top-links.navbar-right
|
21
|
-
%li
|
22
|
-
%a.btn.btn-link{ href: '/_proxes/auth/identity' }
|
23
|
-
Log In
|
24
|
-
.navbar-default.sidebar{ role: 'navigation' }
|
25
|
-
= haml :'partials/sidebar'
|
@@ -1,24 +0,0 @@
|
|
1
|
-
- if flash[:danger]
|
2
|
-
.alert.alert-danger.alert-dismissible{ role: "alert" }
|
3
|
-
%button.close{ 'type' => 'button', 'aria-hidden' => 'true', 'area-label' => 'true', 'data-dismiss' => 'alert' } ×
|
4
|
-
- (flash[:danger].is_a?(Array) ? flash[:danger] : [flash[:danger]]).each do |msg|
|
5
|
-
%span= msg
|
6
|
-
|
7
|
-
- if flash[:warning]
|
8
|
-
.alert.alert-warning.alert-dismissible{ role: "alert" }
|
9
|
-
%button.close{ 'type' => 'button', 'aria-hidden' => 'true', 'area-label' => 'true', 'data-dismiss' => 'alert' } ×
|
10
|
-
- (flash[:warning].is_a?(Array) ? flash[:warning] : [flash[:warning]]).each do |msg|
|
11
|
-
%span= msg
|
12
|
-
|
13
|
-
- if flash[:success]
|
14
|
-
.alert.alert-success.alert-dismissible{ role: "alert" }
|
15
|
-
%button.close{ 'type' => 'button', 'aria-hidden' => 'true', 'area-label' => 'true', 'data-dismiss' => 'alert' } ×
|
16
|
-
- (flash[:success].is_a?(Array) ? flash[:success] : [flash[:success]]).each do |msg|
|
17
|
-
%span= msg
|
18
|
-
|
19
|
-
|
20
|
-
- if flash[:info]
|
21
|
-
.alert.alert-info.alert-dismissible{ role: "alert" }
|
22
|
-
%button.close{ 'type' => 'button', 'aria-hidden' => 'true', 'area-label' => 'true', 'data-dismiss' => 'alert' } ×
|
23
|
-
- (flash[:info].is_a?(Array) ? flash[:info] : [flash[:info]]).each do |msg|
|
24
|
-
%span= msg
|
data/views/partials/pager.haml
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
%nav{"aria-label" => "Page navigation"}
|
2
|
-
%p.text-center
|
3
|
-
Showing #{list.current_page_record_range} of #{list.pagination_record_count} records
|
4
|
-
%ul.pager
|
5
|
-
%li
|
6
|
-
%a{href: "#{base_path}?page=1&count=#{list.page_size}"} First
|
7
|
-
%li{class: ("disabled" if list.first_page?)}
|
8
|
-
%a{href: prev_link} Previous
|
9
|
-
%li{class: ("disabled" if list.last_page?)}
|
10
|
-
%a{href: next_link} Next
|
11
|
-
%li
|
12
|
-
%a{href: "#{base_path}?page=#{list.page_count}&count=#{list.page_size}"} Last
|
data/views/partials/sidebar.haml
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
%ul.nav.nav-pills.nav-stacked
|
2
|
-
- if authenticated?
|
3
|
-
%li
|
4
|
-
%a{ href: '/_proxes' }
|
5
|
-
%i.fa.fa-home.fa-fw
|
6
|
-
Home
|
7
|
-
- ProxES::Container.navigation.each do |item|
|
8
|
-
- if item[:target].nil? || policy(item[:target]).list?
|
9
|
-
- if item[:group]
|
10
|
-
%li
|
11
|
-
%a{ href: '#' }
|
12
|
-
%i.fa.fa-fw{ class: "fa-#{item[:icon]}" }
|
13
|
-
=item[:group]
|
14
|
-
%span.fa.arrow
|
15
|
-
%ul.nav.nav-second-level
|
16
|
-
- item[:items].each do |sub_item|
|
17
|
-
%li
|
18
|
-
%a{ href: "/_proxes#{sub_item[:link]}" }
|
19
|
-
%i.fa.fa-fw{ class: "fa-#{sub_item[:icon]}" }
|
20
|
-
= sub_item[:text]
|
21
|
-
- else
|
22
|
-
%li
|
23
|
-
%a{ href: "/_proxes#{item[:link]}" }
|
24
|
-
%i.fa.fa-fw{ class: "fa-#{item[:icon]}" }
|
25
|
-
= item[:text]
|
26
|
-
- else
|
27
|
-
%li.active
|
28
|
-
%a{ href: '/_proxes/auth/identity' }
|
29
|
-
%i.fa.fa-user.fa-fw
|
30
|
-
Log In
|
31
|
-
%li
|
32
|
-
%a{ href: '/_proxes/auth/identity/register' }
|
33
|
-
%i.fa.fa-pencil-square-o.fa-fw
|
34
|
-
Register
|
35
|
-
|
36
|
-
- if authenticated?
|
37
|
-
- if cluster_health
|
38
|
-
%table.table
|
39
|
-
%tbody
|
40
|
-
%tr
|
41
|
-
%th
|
42
|
-
Cluster:
|
43
|
-
%td
|
44
|
-
= cluster_health['cluster_name']
|
45
|
-
%tr
|
46
|
-
%th
|
47
|
-
Status:
|
48
|
-
%td
|
49
|
-
= cluster_health['status']
|
50
|
-
%tr
|
51
|
-
%th
|
52
|
-
Nodes:
|
53
|
-
%td
|
54
|
-
= cluster_health['number_of_nodes']
|
data/views/roles/display.haml
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-body
|
6
|
-
%p.description
|
7
|
-
%label Name:
|
8
|
-
= entity.name
|
9
|
-
|
10
|
-
.row
|
11
|
-
.col-md-6
|
12
|
-
%a.btn.btn-default{ href: "#{base_path}/#{entity.id}/edit" } Edit
|
13
|
-
.col-md-6.text-right
|
14
|
-
- if policy(entity).delete?
|
15
|
-
%form{ method: 'post', action: "#{base_path}/#{entity.id}" }
|
16
|
-
%input{ name: '_method', value: 'DELETE', type: 'hidden' }
|
17
|
-
%button.btn.btn-warning{ type: 'submit' } Delete
|
18
|
-
.col-md-2
|
19
|
-
|
20
|
-
.row
|
21
|
-
.col-md-2
|
22
|
-
.col-md-8
|
23
|
-
.panel.panel-default
|
24
|
-
.panel-heading
|
25
|
-
%h4 Permissions
|
26
|
-
%table.table
|
27
|
-
- if entity.permissions.count > 0
|
28
|
-
- entity.permissions.each do |permission|
|
29
|
-
%tr
|
30
|
-
%td
|
31
|
-
%a.btn-block{ href: "/_proxes/permissions/#{entity.id}" }
|
32
|
-
= permission.verb
|
33
|
-
= permission.pattern
|
34
|
-
- else
|
35
|
-
%tr
|
36
|
-
%td{ colspan: 2 } No Permissions
|
37
|
-
|
38
|
-
.col-md-2
|
data/views/roles/edit.haml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-body
|
6
|
-
%form.form-horizontal{ method: 'post', action: "#{base_path}/#{entity.id}" }
|
7
|
-
%input{ name: '_method', value: 'PUT', type: 'hidden' }
|
8
|
-
= haml :'roles/form', locals: { entity: entity }
|
9
|
-
%button.btn.btn-primary{ type: 'submit' }
|
10
|
-
Update Role
|
11
|
-
.col-md-2
|
data/views/roles/form.haml
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
= form_control(:name, entity)
|
data/views/roles/index.haml
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-12
|
3
|
-
.panel.panel-default
|
4
|
-
%table.table.table-striped
|
5
|
-
%thead
|
6
|
-
%tr
|
7
|
-
%th Name
|
8
|
-
%th Permissions
|
9
|
-
%tbody
|
10
|
-
-list.each do |entity|
|
11
|
-
%tr
|
12
|
-
%td
|
13
|
-
%a{ href: "#{base_path}/#{entity.id}" }= entity.name
|
14
|
-
%td
|
15
|
-
= entity.permissions_dataset.count
|
16
|
-
- if policy(::ProxES::Role).create?
|
17
|
-
.panel-body.text-right
|
18
|
-
%a.btn.btn-primary{ href: "#{base_path}/new" } New Role
|
19
|
-
|
20
|
-
=pagination(list, base_path)
|
data/views/roles/new.haml
DELETED
data/views/users/display.haml
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-body
|
6
|
-
.author
|
7
|
-
%img.pull-right.thumbnail{ src: entity.gravatar }
|
8
|
-
%h4= entity.email
|
9
|
-
|
10
|
-
%hr
|
11
|
-
%p.description
|
12
|
-
%label Name:
|
13
|
-
= entity.name
|
14
|
-
%p.description
|
15
|
-
%label Surname:
|
16
|
-
= entity.surname
|
17
|
-
%p.description
|
18
|
-
%label Roles:
|
19
|
-
= entity.roles_dataset.map(:name).map(&:titlecase).join(', ')
|
20
|
-
%p.description
|
21
|
-
%label Signed up:
|
22
|
-
= entity.created_at.strftime('%Y-%m-%d %H:%M:%S')
|
23
|
-
|
24
|
-
.row
|
25
|
-
.col-md-6
|
26
|
-
%a.btn.btn-default{ href: "#{base_path}/#{entity.id}/edit" } Edit
|
27
|
-
.col-md-6.text-right
|
28
|
-
- if policy(entity).delete?
|
29
|
-
%form{ method: 'post', action: "#{base_path}/#{entity.id}" }
|
30
|
-
%input{ name: '_method', value: 'DELETE', type: 'hidden' }
|
31
|
-
%button.btn.btn-warning{ type: 'submit' } Delete
|
32
|
-
.col-md-2
|
33
|
-
|
34
|
-
.row
|
35
|
-
.col-md-2
|
36
|
-
.col-md-8
|
37
|
-
.panel.panel-default
|
38
|
-
.panel-heading
|
39
|
-
%h4 Permissions
|
40
|
-
%table.table
|
41
|
-
- if entity.permissions.count > 0
|
42
|
-
- entity.permissions.each do |permission|
|
43
|
-
%tr
|
44
|
-
%td
|
45
|
-
%a.btn-block{ href: "/_proxes/permissions/#{entity.id}" }
|
46
|
-
= permission.verb
|
47
|
-
= permission.pattern
|
48
|
-
- else
|
49
|
-
%tr
|
50
|
-
%td{ colspan: 2 } No Permissions
|
51
|
-
.col-md-2
|
52
|
-
|
53
|
-
- if entity.identity.first
|
54
|
-
.row
|
55
|
-
.col-md-2
|
56
|
-
.col-md-8
|
57
|
-
.panel.panel-default
|
58
|
-
.panel-heading
|
59
|
-
%h4 Change Password
|
60
|
-
.panel-body
|
61
|
-
%form.form-horizontal{ method: 'post', action: "#{base_path}/#{entity.id}/identity" }
|
62
|
-
%input{ name: '_method', value: 'PUT', type: 'hidden' }
|
63
|
-
= form_control(:password, entity.identity.first, type: 'password', placeholder: 'Your password', group: 'identity')
|
64
|
-
= form_control(:password_confirmation, entity.identity.first, type: 'password', label: 'Confirm Password', placeholder: 'Confirm your password', group: 'identity')
|
65
|
-
%button.btn.btn-primary{ type: 'submit' }
|
66
|
-
Change Password
|
67
|
-
.col-md-2
|
68
|
-
|
69
|
-
|
data/views/users/edit.haml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-body
|
6
|
-
%form.form-horizontal{ method: 'post', action: "#{base_path}/#{entity.id}" }
|
7
|
-
%input{ name: '_method', value: 'PUT', type: 'hidden' }
|
8
|
-
= haml :'users/user', locals: { user: entity }
|
9
|
-
%button.btn.btn-primary{ type: 'submit' }
|
10
|
-
Update User
|
11
|
-
.col-md-2
|
data/views/users/identity.haml
DELETED
@@ -1,3 +0,0 @@
|
|
1
|
-
= form_control(:username, identity, label: 'Email', placeholder: 'Your email address')
|
2
|
-
= form_control(:password, identity, type: 'password', placeholder: 'Your password')
|
3
|
-
= form_control(:password_confirmation, identity, type: 'password', label: 'Confirm Password', placeholder: 'Confirm your password')
|
data/views/users/index.haml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-12
|
3
|
-
.panel.panel-default
|
4
|
-
%table.table.table-striped
|
5
|
-
%thead
|
6
|
-
%tr
|
7
|
-
%th Email
|
8
|
-
%th Name
|
9
|
-
%th Surname
|
10
|
-
%th Roles
|
11
|
-
%tbody
|
12
|
-
-list.each do |entity|
|
13
|
-
%tr
|
14
|
-
%td
|
15
|
-
%a{ href: "#{base_path}/#{entity.id}" }= entity.email
|
16
|
-
%td= entity.name
|
17
|
-
%td= entity.surname
|
18
|
-
%td= entity.roles_dataset.map(:name).map(&:titlecase).join(', ')
|
19
|
-
- if policy(::ProxES::User).create?
|
20
|
-
.panel-body.text-right
|
21
|
-
%a.btn.btn-primary{ href: "#{base_path}/new" } New User
|
22
|
-
|
23
|
-
=pagination(list, base_path)
|
data/views/users/new.haml
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-body
|
6
|
-
%form.form-horizontal{ method: 'post', action: base_path }
|
7
|
-
= haml :'users/identity', locals: { identity: identity }
|
8
|
-
= haml :'users/user', locals: { user: entity }
|
9
|
-
%button.btn.btn-primary.btn{ type: 'submit' }
|
10
|
-
Create User
|
11
|
-
.col-md-2
|
data/views/users/profile.haml
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
.row
|
2
|
-
.col-md-2
|
3
|
-
.col-md-8
|
4
|
-
.panel.panel-default
|
5
|
-
.panel-body
|
6
|
-
.author
|
7
|
-
%img.pull-right.thumbnail{ src: entity.gravatar }
|
8
|
-
%h4= entity.email
|
9
|
-
|
10
|
-
%hr
|
11
|
-
%p.description
|
12
|
-
%label Name:
|
13
|
-
= entity.name
|
14
|
-
%p.description
|
15
|
-
%label Surname:
|
16
|
-
= entity.surname
|
17
|
-
%p.description
|
18
|
-
%label Roles:
|
19
|
-
= entity.roles_dataset.map(:name).map(&:titlecase).join(', ')
|
20
|
-
%p.description
|
21
|
-
%label Signed up:
|
22
|
-
= entity.created_at.strftime('%Y-%m-%d %H:%M:%S')
|
23
|
-
.col-md-2
|
24
|
-
|
25
|
-
.row
|
26
|
-
.col-md-2
|
27
|
-
.col-md-8
|
28
|
-
.panel.panel-default
|
29
|
-
.panel-heading
|
30
|
-
%h4 Change Password
|
31
|
-
.panel-body
|
32
|
-
%form.form-horizontal{ method: 'post', action: "#{base_path}/#{entity.id}/identity" }
|
33
|
-
%input{ name: '_method', value: 'PUT', type: 'hidden' }
|
34
|
-
= form_control(:old_password, identity, type: 'password', placeholder: 'Your current password')
|
35
|
-
= form_control(:password, identity, type: 'password', placeholder: 'Your new password')
|
36
|
-
= form_control(:password_confirmation, identity, type: 'password', label: 'Confirm Password', placeholder: 'Confirm your password')
|
37
|
-
%button.btn.btn-primary{ type: 'submit' }
|
38
|
-
Change Password
|
39
|
-
.col-md-2
|
data/views/users/user.haml
DELETED