wobauth 5.1.1 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ece99ba3c367db93f0174e65b7322eee6b8eb14ce78ef81e1b954672833fb56a
4
- data.tar.gz: 2eb7759dd766870f95cdfd7ed18f712e650dd364ab4a8179cb789ce65a644618
3
+ metadata.gz: 1a661b2ef2633e5ad06f72306b6a30c539c9fdb33a0cf82c1f4be979dfdb3d4a
4
+ data.tar.gz: ebb2d4e8295b2ddf6e165cab805b13b20080ee8187a154190e2a49dbbc82e571
5
5
  SHA512:
6
- metadata.gz: fbd648f6565680dd3f3d2f344b7c7b39bbe2ddadea2285828e18bc803ba1cfbc1146fddd740cc6c5d26b352b04444295890bad1aa6d7ab936a7f0f1dd855454e
7
- data.tar.gz: e75e32b2f84fbf4b0c4405769c154c65cff5d88b6d6a9b40001dfae05f6ae33e4d4a649654da472821f8a3b02dce0673e4641cd3443cd4c3eee5d82062d62c0f
6
+ metadata.gz: b1c53adfd7b8d1b61cc93708c5c09224ff40ba56958ecd310b8124563027b2091e071da45c2cb780452b9200c9828dd462893a1ed52dd48cff0c2e1c34045148
7
+ data.tar.gz: 3a91daac8fd923a4b0bde19f1ad156d96ec3185159559e3e49eb7d4fb64ec7a603603786036fa9692c6f31f7e7c5c466754f820f94a8946299005be75bd0178c
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License (MIT)
2
2
 
3
- Copyright (c) 2014-2020 Wolfgang Barth
3
+ Copyright (c) 2014-2021 Wolfgang Barth
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -30,21 +30,29 @@ wobauth 3.x uses bootstrap v4 and font-awesome, starting with Rails 5.1
30
30
  (may work with Rails 5.0, but not tested)
31
31
  wobauth 4.x works with sprockets v4.
32
32
  wobauth 5.x works with rails 6.x and is designed for autoloading via zeitwerk.
33
+ wobauth 6.x works with rails >= 6.1 and uses bootstrap v5.
33
34
 
34
35
  Requirements
35
36
  ------------
36
37
 
38
+ ### Rails >= 6.0; autoload = :zeitwerk; webpacker; stimulusjs
39
+
40
+ | version | rails | ruby | bootstrap | icons | wobapphelpers |
41
+ |------------|-------|--------|-----------|-----------------|---------------|
42
+ | master(6.x)| >=6.1 | >= 2.7 | v5 | fontawesome 5.x | master (5.x) |
43
+ | 5-1-stable | >=6.0 | >= 2.6 | v4 | fontawesome 5.x | 4-stable |
44
+
37
45
  ### Rails >= 6.0, autoload = :zeitwerk
38
46
 
39
- | branch | rails | ruby | bootstrap | icons | wobapphelpers |
47
+ | version | rails | ruby | bootstrap | icons | wobapphelpers |
40
48
  |------------|-------|--------|-----------|-----------------|---------------|
41
- | master(5.x)| >=6.0 | >= 2.6 | v4 | fontawesome 5.x | master (4.x) |
49
+ | 5-stable | >=6.0 | >= 2.6 | v4 | fontawesome 5.x | 4-stable |
42
50
 
43
51
  ### Rails <= 5.2, autoload = :classic
44
52
 
45
53
  | branch | rails | ruby | bootstrap | icons | wobapphelpers |
46
54
  |------------|-------|--------|-----------|-----------------|---------------|
47
- | 4-0-stable | >=5.1 | >= 2.3 | v4 | fontawesome 5.x | master (4.x) |
55
+ | 4-0-stable | >=5.1 | >= 2.3 | v4 | fontawesome 5.x | 4-stable |
48
56
  | 3-0-stable | >=5.1 | >= 2.3 | v4 | fontawesome 4.7 | 3-0-stable |
49
57
  | 2-0-stable | 5.0 | >= 2.2 | v3 | glyphicons | 2-0-stable |
50
58
  | 1-0-stable | 4.2 | >= 2.0 | v3 | glyphicons | 1-0-stable |
@@ -57,13 +65,13 @@ Installation
57
65
  Add wobauth to your Gemfile:
58
66
 
59
67
  ```ruby
68
+ gem 'wobauth', git: 'https://github.com/swobspace/wobauth.git', branch: 'master'
60
69
  gem 'wobauth', '~> 5.0.0'
61
70
  gem 'wobauth', '~> 4.0.0'
62
71
  gem 'wobauth', '~> 3.4.8'
63
72
  gem 'wobauth', git: 'https://github.com/swobspace/wobauth.git', branch: '3-0-stable'
64
73
  gem 'wobauth', git: 'https://github.com/swobspace/wobauth.git', branch: '2-0-stable'
65
74
  gem 'wobauth', git: 'https://github.com/swobspace/wobauth.git', branch: '1-0-stable'
66
-
67
75
  ```
68
76
  Starting with v3.4 gems are published to rubygems.org.
69
77
 
@@ -181,7 +189,7 @@ included in this rails engine.
181
189
  Licence
182
190
  -------
183
191
 
184
- wobauth Copyright (C) 2014-2020 Wolfgang Barth
192
+ wobauth Copyright (C) 2014-2021 Wolfgang Barth
185
193
 
186
194
  MIT license, see [LICENSE](LICENSE)
187
195
 
@@ -1,5 +1,5 @@
1
1
  <div class="container">
2
- <%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, class: 'card' }) do |f| %>
2
+ <%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, class: 'card', 'data-turbo': false }) do |f| %>
3
3
  <%= f.error_notification %>
4
4
 
5
5
  <div class="card-header">
@@ -18,7 +18,7 @@
18
18
  <%= f.input :password_confirmation, required: false %>
19
19
  <%= f.input :current_password, hint: "we need your current password to confirm your changes", required: true %>
20
20
 
21
- <%= f.button :submit, class: 'btn btn-primary' %>
21
+ <%= f.button :submit, class: 'btn btn-primary', data: { turbo: false } %>
22
22
  <%= cancel_button %>
23
23
  </div>
24
24
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <div class="container">
2
2
  <%= simple_form_for(resource, as: resource_name, url: session_path(resource_name),
3
- html: { class: 'card'}) do |f| %>
3
+ html: { class: 'form-horizontal card', 'data-turbo': false }) do |f| %>
4
4
  <div class="card-header">
5
5
  <h3>Login</h3>
6
6
  </div>
@@ -9,7 +9,7 @@
9
9
  <%= f.input :username, required: true, autofocus: true %>
10
10
  <%= f.input :password, required: true %>
11
11
 
12
- <%= f.button :submit, "Log in" %>
12
+ <%= f.button :submit, "Log in", data: { turbo: false } %>
13
13
  </div>
14
14
  <% end %>
15
15
 
@@ -2,7 +2,7 @@
2
2
  <div class="card-body p-1 m-1">
3
3
  <%= form_tag( url_for(:action => 'index'),
4
4
  :class => "") do -%>
5
- <div class="form-group">
5
+ <div class="mb-3">
6
6
  <label>Name, Vorname oder E-Mail-Adresse:</label>
7
7
  <%= text_field_tag :query, '', class: 'form-control'-%>
8
8
  </div>
@@ -11,59 +11,65 @@
11
11
  </div>
12
12
  <br>
13
13
 
14
- <table id="adusers" class="table table-bordered table-striped dataTable" role="datatable">
15
- <thead>
16
- <tr>
17
- <th><%= t('attributes.sn') %></th>
18
- <th><%= t('attributes.givenname') %></th>
19
- <th><%= t('attributes.ort') %></th>
20
- <th><%= t('attributes.plz') %></th>
21
- <th><%= t('attributes.streetaddress') %></th>
22
- <th><%= t('attributes.department') %></th>
23
- <th><%= t('attributes.company') %></th>
24
- <th><%= t('attributes.mail') %></th>
25
- <th><%= t('attributes.telephonenumber') %></th>
26
- <th><%= t('attributes.facsimiletelephonenumber') %></th>
27
- <th><%= t('attributes.mobile') %></th>
28
- <th><%= t('attributes.username') %></th>
29
- <th><%= t('wobauth.action') %></th>
30
- </tr>
31
- </thead>
32
- <tfoot>
33
- <tr>
34
- <th></th>
35
- <th></th>
36
- <th></th>
37
- <th></th>
38
- <th></th>
39
- <th></th>
40
- <th></th>
41
- <th></th>
42
- <th></th>
43
- <th></th>
44
- <th></th>
45
- <th></th>
46
- <th></th>
47
- </tr>
48
- </tfoot>
14
+ <div data-controller="datatables">
15
+ <%= content_tag :table, id: :adusers, role: :woauth_datatable,
16
+ class: "table table-bordered table-striped",
17
+ data: {
18
+ "datatables-target": 'datatable',
19
+ } do %>
20
+ <thead>
21
+ <tr>
22
+ <th><%= t('attributes.sn') %></th>
23
+ <th><%= t('attributes.givenname') %></th>
24
+ <th><%= t('attributes.ort') %></th>
25
+ <th><%= t('attributes.plz') %></th>
26
+ <th><%= t('attributes.streetaddress') %></th>
27
+ <th><%= t('attributes.department') %></th>
28
+ <th><%= t('attributes.company') %></th>
29
+ <th><%= t('attributes.mail') %></th>
30
+ <th><%= t('attributes.telephonenumber') %></th>
31
+ <th><%= t('attributes.facsimiletelephonenumber') %></th>
32
+ <th><%= t('attributes.mobile') %></th>
33
+ <th><%= t('attributes.username') %></th>
34
+ <th><%= t('wobauth.action') %></th>
35
+ </tr>
36
+ </thead>
37
+ <tfoot>
38
+ <tr>
39
+ <th></th>
40
+ <th></th>
41
+ <th></th>
42
+ <th></th>
43
+ <th></th>
44
+ <th></th>
45
+ <th></th>
46
+ <th></th>
47
+ <th></th>
48
+ <th></th>
49
+ <th></th>
50
+ <th></th>
51
+ <th></th>
52
+ </tr>
53
+ </tfoot>
49
54
 
50
- <tbody>
51
- <% @ad_users.each do |ad_user| %>
52
- <%= content_tag(:tr, class: aduser_class(Wobauth::User, ad_user)) do %>
53
- <td><%= ad_user.sn %></td>
54
- <td><%= ad_user.givenname %></td>
55
- <td><%= ad_user.l %></td>
56
- <td><%= ad_user.postalcode %></td>
57
- <td><%= ad_user.streetaddress %></td>
58
- <td><%= ad_user.department %></td>
59
- <td><%= ad_user.company %></td>
60
- <td><%= ad_user.mail %></td>
61
- <td><%= ad_user.telephonenumber %></td>
62
- <td><%= ad_user.facsimiletelephonenumber %></td>
63
- <td><%= ad_user.mobile %></td>
64
- <td><%= ad_user.username %></td>
65
- <td><%= new_from_aduser_link(Wobauth::User, ad_user) %></td>
55
+ <tbody>
56
+ <% @ad_users.each do |ad_user| %>
57
+ <%= content_tag(:tr, class: aduser_class(Wobauth::User, ad_user)) do %>
58
+ <td><%= ad_user.sn %></td>
59
+ <td><%= ad_user.givenname %></td>
60
+ <td><%= ad_user.l %></td>
61
+ <td><%= ad_user.postalcode %></td>
62
+ <td><%= ad_user.streetaddress %></td>
63
+ <td><%= ad_user.department %></td>
64
+ <td><%= ad_user.company %></td>
65
+ <td><%= ad_user.mail %></td>
66
+ <td><%= ad_user.telephonenumber %></td>
67
+ <td><%= ad_user.facsimiletelephonenumber %></td>
68
+ <td><%= ad_user.mobile %></td>
69
+ <td><%= ad_user.username %></td>
70
+ <td><%= new_from_aduser_link(Wobauth::User, ad_user) %></td>
71
+ <% end %>
66
72
  <% end %>
67
- <% end %>
68
- </tbody>
69
- </table>
73
+ </tbody>
74
+ <% end %>
75
+ </div>
@@ -1,40 +1,45 @@
1
1
  <h1><%= t('controller.wobauth/authorities') %></h1>
2
2
 
3
- <%= content_tag :table, id: :wobauth_authorities, role: :wobauth_datatable,
4
- class: "table table-bordered table-striped dataTable" do %>
5
- <thead>
6
- <tr>
7
- <th><%= t('attributes.authorizable') %></th>
8
- <th><%= t('attributes.authorizable_type') %></th>
9
- <th><%= t('attributes.role') %></th>
10
- <th><%= t('attributes.authorized_for') %></th>
11
- <th><%= t('attributes.authorized_for_type') %></th>
12
- <th><%= t('attributes.valid_from') %></th>
13
- <th><%= t('attributes.valid_until') %></th>
14
- <th><%= t('wobauth.action') %></th>
15
- </tr>
16
- </thead>
17
- <tbody>
3
+ <div data-controller="datatables">
4
+ <%= content_tag :table, id: :wobauth_authorities, role: :wobauth_datatable,
5
+ class: "table table-bordered table-striped",
6
+ data: {
7
+ "datatables-target": 'datatable',
8
+ } do %>
18
9
 
19
- <% @authorities.each do |authority| %>
20
- <%= content_tag_for(:tr, authority) do %>
21
- <td><%= authority.authorizable %></td>
22
- <td><%= authority.authorizable_type %></td>
23
- <td><%= authority.role %></td>
24
- <td><%= authority.authorized_for %></td>
25
- <td><%= authority.authorized_for_type %></td>
26
- <td><%= authority.valid_from %></td>
27
- <td><%= authority.valid_until %></td>
28
- <td class="nowrap">
29
- <%= show_link [wobauth, authority] %>
30
- <%= edit_link [wobauth, authority] %>
31
- <%= delete_link [wobauth, authority] %>
32
- </td>
33
- <% end %>
34
- <% end %>
35
- </tbody>
36
- <% end %>
10
+ <thead>
11
+ <tr>
12
+ <th><%= t('attributes.authorizable') %></th>
13
+ <th><%= t('attributes.authorizable_type') %></th>
14
+ <th><%= t('attributes.role') %></th>
15
+ <th><%= t('attributes.authorized_for') %></th>
16
+ <th><%= t('attributes.authorized_for_type') %></th>
17
+ <th><%= t('attributes.valid_from') %></th>
18
+ <th><%= t('attributes.valid_until') %></th>
19
+ <th><%= t('wobauth.action') %></th>
20
+ </tr>
21
+ </thead>
22
+ <tbody>
37
23
 
24
+ <% @authorities.each do |authority| %>
25
+ <%= content_tag(:tr, id: dom_id(authority), class: dom_class(authority)) do %>
26
+ <td><%= authority.authorizable %></td>
27
+ <td><%= authority.authorizable_type %></td>
28
+ <td><%= authority.role %></td>
29
+ <td><%= authority.authorized_for %></td>
30
+ <td><%= authority.authorized_for_type %></td>
31
+ <td><%= authority.valid_from %></td>
32
+ <td><%= authority.valid_until %></td>
33
+ <td class="nowrap">
34
+ <%= show_link [wobauth, authority] %>
35
+ <%= edit_link [wobauth, authority] %>
36
+ <%= delete_link [wobauth, authority] %>
37
+ </td>
38
+ <% end %>
39
+ <% end %>
40
+ </tbody>
41
+ <% end %>
42
+ </div>
38
43
  <br />
39
44
 
40
45
  <%= back_link %>
@@ -5,31 +5,31 @@
5
5
  <div class="card-body">
6
6
  <table class="table table-sm table-borderless">
7
7
  <tr>
8
- <th class="w-25 text-right"><%= t('attributes.authorizable')%>:</th>
8
+ <th class="w-25 text-end"><%= t('attributes.authorizable')%>:</th>
9
9
  <td><%= @authority.authorizable %></td>
10
10
  </tr>
11
11
  <tr>
12
- <th class="w-25 text-right"><%= t('attributes.authorizable_type')%>:</th>
12
+ <th class="w-25 text-end"><%= t('attributes.authorizable_type')%>:</th>
13
13
  <td><%= @authority.authorizable_type %></td>
14
14
  </tr>
15
15
  <tr>
16
- <th class="w-25 text-right"><%= t('attributes.role')%>:</th>
16
+ <th class="w-25 text-end"><%= t('attributes.role')%>:</th>
17
17
  <td><%= @authority.role %></td>
18
18
  </tr>
19
19
  <tr>
20
- <th class="w-25 text-right"><%= t('attributes.authorized_for')%>:</th>
20
+ <th class="w-25 text-end"><%= t('attributes.authorized_for')%>:</th>
21
21
  <td><%= @authority.authorized_for %></td>
22
22
  </tr>
23
23
  <tr>
24
- <th class="w-25 text-right"><%= t('attributes.authorized_for_type')%>:</th>
24
+ <th class="w-25 text-end"><%= t('attributes.authorized_for_type')%>:</th>
25
25
  <td><%= @authority.authorized_for_type %></td>
26
26
  </tr>
27
27
  <tr>
28
- <th class="w-25 text-right"><%= t('attributes.valid_from')%>:</th>
28
+ <th class="w-25 text-end"><%= t('attributes.valid_from')%>:</th>
29
29
  <td><%= @authority.valid_from %></td>
30
30
  </tr>
31
31
  <tr>
32
- <th class="w-25 text-right"><%= t('attributes.valid_until')%>:</th>
32
+ <th class="w-25 text-end"><%= t('attributes.valid_until')%>:</th>
33
33
  <td><%= @authority.valid_until %></td>
34
34
  </tr>
35
35
  </table>
@@ -8,7 +8,7 @@
8
8
  </thead>
9
9
  <tbody>
10
10
  <% group.memberships.each do |membership| %>
11
- <%= content_tag_for(:tr, membership) do %>
11
+ <%= content_tag(:tr, id: dom_id(membership), class: dom_class(membership)) do %>
12
12
  <td><%= link_to membership.user, wobauth.user_path(membership.user) %></td>
13
13
  <td><%= membership.auto %></td>
14
14
  <td class="nowrap">
@@ -9,7 +9,7 @@
9
9
  </thead>
10
10
  <tbody>
11
11
  <% group.authorities.each do |authority| %>
12
- <%= content_tag_for(:tr, authority) do %>
12
+ <%= content_tag(:tr, id: dom_id(authority), class: dom_id(authority)) do %>
13
13
  <td><%= link_to authority.role, wobauth.role_path(authority.role) %></td>
14
14
  <td><%= authorized_for_link(authority.authorized_for) %></td>
15
15
  <td><%= authority.authorized_for_type %></td>
@@ -1,29 +1,35 @@
1
1
  <h1><%= t('controller.wobauth/groups') %></h1>
2
2
 
3
- <%= content_tag :table, id: :wobauth_groups, role: :wobauth_datatable,
4
- class: "table table-bordered table-striped dataTable" do %>
5
- <thead>
6
- <tr>
7
- <th><%= t('attributes.name') %></th>
8
- <th><%= t('attributes.description') %></th>
9
- <th><%= t('wobauth.action') %></th>
10
- </tr>
11
- </thead>
12
- <tbody>
13
3
 
14
- <% @groups.each do |group| %>
15
- <%= content_tag_for(:tr, group) do %>
16
- <td><%= group.name %></td>
17
- <td><%= group.description %></td>
18
- <td class="nowrap">
19
- <%= show_link [wobauth, group] %>
20
- <%= edit_link [wobauth, group] %>
21
- <%= delete_link [wobauth, group] %>
22
- </td>
4
+ <div data-controller="datatables">
5
+ <%= content_tag :table, id: :wobauth_groups, role: :wobauth_datatable,
6
+ class: "table table-bordered table-striped",
7
+ data: {
8
+ "datatables-target": 'datatable',
9
+ } do %>
10
+ <thead>
11
+ <tr>
12
+ <th><%= t('attributes.name') %></th>
13
+ <th><%= t('attributes.description') %></th>
14
+ <th><%= t('wobauth.action') %></th>
15
+ </tr>
16
+ </thead>
17
+ <tbody>
18
+
19
+ <% @groups.each do |group| %>
20
+ <%= content_tag(:tr, id: dom_id(group), class: dom_class(group)) do %>
21
+ <td><%= group.name %></td>
22
+ <td><%= group.description %></td>
23
+ <td class="nowrap">
24
+ <%= show_link [wobauth, group] %>
25
+ <%= edit_link [wobauth, group] %>
26
+ <%= delete_link [wobauth, group] %>
27
+ </td>
28
+ <% end %>
29
+ <% end %>
30
+ </tbody>
23
31
  <% end %>
24
- <% end %>
25
- </tbody>
26
- <% end %>
32
+ </div>
27
33
 
28
34
  <br />
29
35
 
@@ -1,31 +1,36 @@
1
1
  <h1><%= t('controller.wobauth/memberships') %></h1>
2
2
 
3
- <%= content_tag :table, id: :wobauth_memberships, role: :wobauth_datatable,
4
- class: "table table-bordered table-striped dataTable" do %>
5
- <thead>
6
- <tr>
7
- <th><%= t('attributes.user') %></th>
8
- <th><%= t('attributes.group') %></th>
9
- <th><%= t('attributes.auto') %></th>
10
- <th><%= t('wobauth.action') %></th>
11
- </tr>
12
- </thead>
13
- <tbody>
3
+ <div data-controller="datatables">
4
+ <%= content_tag :table, id: :wobauth_memberships, role: :wobauth_datatable,
5
+ class: "table table-bordered table-striped dataTable",
6
+ data: {
7
+ "datatables-target": 'datatable',
8
+ } do %>
9
+ <thead>
10
+ <tr>
11
+ <th><%= t('attributes.user') %></th>
12
+ <th><%= t('attributes.group') %></th>
13
+ <th><%= t('attributes.auto') %></th>
14
+ <th><%= t('wobauth.action') %></th>
15
+ </tr>
16
+ </thead>
17
+ <tbody>
14
18
 
15
- <% @memberships.each do |membership| %>
16
- <%= content_tag_for(:tr, membership) do %>
17
- <td><%= membership.user %></td>
18
- <td><%= membership.group %></td>
19
- <td><%= membership.auto %></td>
20
- <td class="nowrap">
21
- <%= show_link [wobauth, membership] %>
22
- <%= edit_link [wobauth, membership] %>
23
- <%= delete_link [wobauth, membership] %>
24
- </td>
19
+ <% @memberships.each do |membership| %>
20
+ <%= content_tag(:tr, id: dom_id(membership), class: dom_class(membership)) do %>
21
+ <td><%= membership.user %></td>
22
+ <td><%= membership.group %></td>
23
+ <td><%= membership.auto %></td>
24
+ <td class="nowrap">
25
+ <%= show_link [wobauth, membership] %>
26
+ <%= edit_link [wobauth, membership] %>
27
+ <%= delete_link [wobauth, membership] %>
28
+ </td>
29
+ <% end %>
25
30
  <% end %>
26
- <% end %>
27
- </tbody>
28
- <% end %>
31
+ </tbody>
32
+ <% end %>
33
+ </div>
29
34
 
30
35
  <br />
31
36
 
@@ -5,15 +5,15 @@
5
5
  <div class="card-body">
6
6
  <table class="table table-sm table-borderless ">
7
7
  <tr>
8
- <th class="w-25 text-right"><%= t('attributes.user')%>:</th>
8
+ <th class="w-25 text-end"><%= t('attributes.user')%>:</th>
9
9
  <td><%= @membership.user %></td>
10
10
  </tr>
11
11
  <tr>
12
- <th class="w-25 text-right"><%= t('attributes.group')%>:</th>
12
+ <th class="w-25 text-end"><%= t('attributes.group')%>:</th>
13
13
  <td><%= @membership.group %></td>
14
14
  </tr>
15
15
  <tr>
16
- <th class="w-25 text-right"><%= t('attributes.auto')%>:</th>
16
+ <th class="w-25 text-end"><%= t('attributes.auto')%>:</th>
17
17
  <td><%= @membership.auto %></td>
18
18
  </tr>
19
19
  </table>
@@ -1,21 +1,27 @@
1
- <%= content_tag :table, id: :wobauth_role_authorities, role: :wobauth_datatable,
2
- class: "table table-sm table-bordered dataTable" do %>
3
- <thead>
4
- <tr>
5
- <th><%= t('attributes.user') %></th>
6
- <th><%= t('attributes.authorizable_type') %></th>
7
- <th><%= t('attributes.authorized_for') %></th>
8
- <th><%= t('attributes.authorized_for_type') %></th>
9
- </tr>
10
- </thead>
11
- <tbody>
12
- <% authorities.valid(Date.today).each do |authority| %>
13
- <%= content_tag_for(:tr, authority) do %>
14
- <td><%= link_to authority.authorizable, polymorphic_path([wobauth, authority.authorizable]) %></td>
15
- <td><%= authority.authorizable_type %></td>
16
- <td><%= authorized_for_link(authority.authorized_for) %></td>
17
- <td><%= authority.authorized_for_type %></td>
1
+ <div data-controller="datatables">
2
+ <%= content_tag :table, id: :wobauth_role_authorities, role: :wobauth_datatable,
3
+ class: "table table-sm table-bordered",
4
+ data: {
5
+ "datatables-target": 'datatable',
6
+ } do %>
7
+
8
+ <thead>
9
+ <tr>
10
+ <th><%= t('attributes.user') %></th>
11
+ <th><%= t('attributes.authorizable_type') %></th>
12
+ <th><%= t('attributes.authorized_for') %></th>
13
+ <th><%= t('attributes.authorized_for_type') %></th>
14
+ </tr>
15
+ </thead>
16
+ <tbody>
17
+ <% authorities.valid(Date.today).each do |authority| %>
18
+ <%= content_tag(:tr, id: dom_id(authority), class: dom_class(authority)) do %>
19
+ <td><%= link_to authority.authorizable, polymorphic_path([wobauth, authority.authorizable]) %></td>
20
+ <td><%= authority.authorizable_type %></td>
21
+ <td><%= authorized_for_link(authority.authorized_for) %></td>
22
+ <td><%= authority.authorized_for_type %></td>
23
+ <% end %>
18
24
  <% end %>
19
- <% end %>
20
- </tbody>
21
- <% end %>
25
+ </tbody>
26
+ <% end %>
27
+ </div>
@@ -1,25 +1,31 @@
1
1
  <h1><%= t('controller.wobauth/roles') %></h1>
2
2
 
3
- <%= content_tag :table, id: :wobauth_roles, role: :wobauth_datatable,
4
- class: "table table-bordered table-striped dataTable" do %>
5
- <thead>
6
- <tr>
7
- <th><%= t('attributes.name') %></th>
8
- <th><%= t('wobauth.action') %></th>
9
- </tr>
10
- </thead>
11
- <tbody>
12
3
 
13
- <% @roles.each do |role| %>
14
- <%= content_tag_for(:tr, role) do %>
15
- <td><%= role.name %></td>
16
- <td class="nowrap">
17
- <%= show_link [wobauth, role] %>
18
- </td>
4
+ <div data-controller="datatables">
5
+ <%= content_tag :table, id: :wobauth_roles, role: :wobauth_datatable,
6
+ class: "table table-bordered table-striped",
7
+ data: {
8
+ "datatables-target": 'datatable',
9
+ } do %>
10
+ <thead>
11
+ <tr>
12
+ <th><%= t('attributes.name') %></th>
13
+ <th><%= t('wobauth.action') %></th>
14
+ </tr>
15
+ </thead>
16
+ <tbody>
17
+
18
+ <% @roles.each do |role| %>
19
+ <%= content_tag(:tr, id: dom_id(role), class: dom_id(role)) do %>
20
+ <td><%= role.name %></td>
21
+ <td class="nowrap">
22
+ <%= show_link [wobauth, role] %>
23
+ </td>
24
+ <% end %>
25
+ <% end %>
26
+ </tbody>
19
27
  <% end %>
20
- <% end %>
21
- </tbody>
22
- <% end %>
28
+ </div>
23
29
 
24
30
  <br />
25
31
 
@@ -1,13 +1,13 @@
1
- <ul class="navbar-nav float-right">
1
+ <ul class="navbar-nav">
2
2
  <li class="nav-item dropdown">
3
- <a href="#" class="nav-link dropdown-toggle" role="button" id="accountNavDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
3
+ <a href="#" class="nav-link dropdown-toggle" role="button" id="accountNavDropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
4
4
  <% if user_signed_in? %>
5
5
  Account
6
6
  <% else %>
7
7
  Login
8
8
  <% end %>
9
9
  </a>
10
- <div class="dropdown-menu dropdown-menu-right" aria-labelledby="accountNavDropdown">
10
+ <div class="dropdown-menu dropdown-menu-end" aria-labelledby="accountNavDropdown">
11
11
  <% unless user_signed_in? %>
12
12
  <% if Wobauth.remote_authentication? %>
13
13
  <%= link_to "Single-Sign-On", wobauth.login_path, class: "dropdown-item" -%>
@@ -1,7 +1,7 @@
1
1
  <% if Wobauth::AdminAbility.new(current_user).can? :navigate, Wobauth::User %>
2
- <ul class="navbar-nav float-left">
2
+ <ul class="navbar-nav">
3
3
  <li class="nav-item dropdown <%= admin_active_class %>">
4
- <a href="#" class="nav-link dropdown-toggle" role="button" id="adminNavDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
4
+ <a href="#" class="nav-link dropdown-toggle" role="button" id="adminNavDropdown" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
5
5
  Admin</a>
6
6
  <div class="dropdown-menu" aria-labelledby="adminNavDropdown">
7
7
  <% ['users', 'groups', 'memberships', 'roles', 'authorities'].each do |ctrlr| %>
@@ -8,7 +8,7 @@
8
8
  </thead>
9
9
  <tbody>
10
10
  <% user.memberships.each do |membership| %>
11
- <%= content_tag_for(:tr, membership) do %>
11
+ <%= content_tag(:tr, id: dom_id(membership), class: dom_class(membership)) do %>
12
12
  <td><%= link_to membership.group, wobauth.group_path(membership.group) %></td>
13
13
 
14
14
  <td><%= membership.auto %></td>
@@ -9,7 +9,7 @@
9
9
  </thead>
10
10
  <tbody>
11
11
  <% user.authorities.each do |authority| %>
12
- <%= content_tag_for(:tr, authority) do %>
12
+ <%= content_tag(:tr, id: dom_id(authority), class: dom_class(authority)) do %>
13
13
  <td><%= link_to authority.role, wobauth.role_path(authority.role) %></td>
14
14
  <td><%= authorized_for_link(authority.authorized_for) %></td>
15
15
  <td><%= authority.authorized_for_type %></td>
@@ -1,49 +1,54 @@
1
1
  <h1><%= t('controller.wobauth/users') %></h1>
2
2
 
3
- <%= content_tag :table, id: :wobauth_users, role: :wobauth_datatable,
4
- class: "table table-bordered table-striped dataTable" do %>
5
- <thead>
6
- <tr>
7
- <th><%= t('attributes.name') %></th>
8
- <th class="notvisible"><%= t('attributes.sn') %></th>
9
- <th class="notvisible"><%= t('attributes.givenname') %></th>
10
- <th class="notvisible"><%= t('attributes.title') %></th>
11
- <th><%= t('attributes.username') %></th>
12
- <th><%= t('attributes.telephone') %></th>
13
- <th><%= t('attributes.email') %></th>
14
- <th class="notvisible"><%= t('attributes.position') %></th>
15
- <th class="notvisible"><%= t('attributes.department') %></th>
16
- <th class="notvisible"><%= t('attributes.company') %></th>
17
- <th><%= t('attributes.current_sign_in_at') %></th>
18
- <th class="notvisible"><%= t('attributes.sign_in_count') %></th>
19
- <th><%= t('wobauth.action')%></th>
20
- </tr>
21
- </thead>
22
- <tbody>
3
+ <div data-controller="datatables">
4
+ <%= content_tag :table, id: :wobauth_users, role: :wobauth_datatable,
5
+ class: "table table-bordered table-striped",
6
+ data: {
7
+ "datatables-target": 'datatable',
8
+ } do %>
9
+ <thead>
10
+ <tr>
11
+ <th><%= t('attributes.name') %></th>
12
+ <th class="notvisible"><%= t('attributes.sn') %></th>
13
+ <th class="notvisible"><%= t('attributes.givenname') %></th>
14
+ <th class="notvisible"><%= t('attributes.title') %></th>
15
+ <th><%= t('attributes.username') %></th>
16
+ <th><%= t('attributes.telephone') %></th>
17
+ <th><%= t('attributes.email') %></th>
18
+ <th class="notvisible"><%= t('attributes.position') %></th>
19
+ <th class="notvisible"><%= t('attributes.department') %></th>
20
+ <th class="notvisible"><%= t('attributes.company') %></th>
21
+ <th><%= t('attributes.current_sign_in_at') %></th>
22
+ <th class="notvisible"><%= t('attributes.sign_in_count') %></th>
23
+ <th><%= t('wobauth.action')%></th>
24
+ </tr>
25
+ </thead>
26
+ <tbody>
23
27
 
24
- <% @users.each do |user| %>
25
- <%= content_tag_for(:tr, user) do %>
26
- <td><%= user %></td>
27
- <td><%= user.sn %></td>
28
- <td><%= user.givenname %></td>
29
- <td><%= user.title %></td>
30
- <td><%= user.username %></td>
31
- <td><%= user.telephone %></td>
32
- <td><%= user.email %></td>
33
- <td><%= user.position %></td>
34
- <td><%= user.department %></td>
35
- <td><%= user.company %></td>
36
- <td><%= user.current_sign_in_at.try(:to_date) %></td>
37
- <td><%= user.sign_in_count %></td>
38
- <td class="nowrap">
39
- <%= show_link [wobauth, user] %>
40
- <%= edit_link [wobauth, user] %>
41
- <%= delete_link [wobauth, user] %>
42
- </td>
28
+ <% @users.each do |user| %>
29
+ <%= content_tag(:tr, id: dom_id(user), class: dom_class(user)) do %>
30
+ <td><%= user %></td>
31
+ <td><%= user.sn %></td>
32
+ <td><%= user.givenname %></td>
33
+ <td><%= user.title %></td>
34
+ <td><%= user.username %></td>
35
+ <td><%= user.telephone %></td>
36
+ <td><%= user.email %></td>
37
+ <td><%= user.position %></td>
38
+ <td><%= user.department %></td>
39
+ <td><%= user.company %></td>
40
+ <td><%= user.current_sign_in_at.try(:to_date) %></td>
41
+ <td><%= user.sign_in_count %></td>
42
+ <td class="nowrap">
43
+ <%= show_link [wobauth, user] %>
44
+ <%= edit_link [wobauth, user] %>
45
+ <%= delete_link [wobauth, user] %>
46
+ </td>
47
+ <% end %>
43
48
  <% end %>
44
- <% end %>
45
- </tbody>
46
- <% end %>
49
+ </tbody>
50
+ <% end %>
51
+ </div>
47
52
 
48
53
  <br />
49
54
 
@@ -1,11 +1,11 @@
1
1
  # Use this setup block to configure all options available in SimpleForm.
2
2
  SimpleForm.setup do |config|
3
3
  config.error_notification_class = 'alert alert-danger'
4
- # config.button_class = 'btn btn-primary'
4
+ config.button_class = 'btn btn-primary'
5
5
  config.boolean_label_class = 'form-check-label'
6
6
 
7
7
  # Helpers
8
- wrapper_options = {class: 'form-group'}
8
+ wrapper_options = {class: 'mb-3'}
9
9
  input_options = {error_class: 'is-invalid'}
10
10
  label_class = 'col-form-label'
11
11
 
@@ -14,7 +14,7 @@ SimpleForm.setup do |config|
14
14
  b.use :hint, wrap_with: {tag: 'small', class: 'form-text text-muted'}
15
15
  end
16
16
 
17
- config.wrappers :vertical_form, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
17
+ config.wrappers :vertical_form, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
18
18
  b.use :html5
19
19
  b.use :placeholder
20
20
  b.optional :maxlength
@@ -28,7 +28,7 @@ SimpleForm.setup do |config|
28
28
  error_and_hint.call(b)
29
29
  end
30
30
 
31
- config.wrappers :vertical_file_input, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
31
+ config.wrappers :vertical_file_input, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
32
32
  b.use :html5
33
33
  b.use :placeholder
34
34
  b.optional :maxlength
@@ -40,7 +40,7 @@ SimpleForm.setup do |config|
40
40
  error_and_hint.call(b)
41
41
  end
42
42
 
43
- config.wrappers :vertical_boolean, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
43
+ config.wrappers :vertical_boolean, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
44
44
  b.use :html5
45
45
  b.optional :readonly
46
46
 
@@ -51,7 +51,7 @@ SimpleForm.setup do |config|
51
51
  error_and_hint.call(b)
52
52
  end
53
53
 
54
- config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
54
+ config.wrappers :vertical_radio_and_checkboxes, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
55
55
  b.use :html5
56
56
  b.optional :readonly
57
57
  b.use :label, class: 'control-label'
@@ -59,7 +59,7 @@ SimpleForm.setup do |config|
59
59
  error_and_hint.call(b)
60
60
  end
61
61
 
62
- config.wrappers :horizontal_form, tag: 'div', class: 'form-group row', error_class: 'has-invalid' do |b|
62
+ config.wrappers :horizontal_form, tag: 'div', class: 'mb-3 row', error_class: 'has-invalid' do |b|
63
63
  b.use :html5
64
64
  b.use :placeholder
65
65
  b.optional :maxlength
@@ -75,7 +75,7 @@ SimpleForm.setup do |config|
75
75
  end
76
76
  end
77
77
 
78
- config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
78
+ config.wrappers :horizontal_file_input, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
79
79
  b.use :html5
80
80
  b.use :placeholder
81
81
  b.optional :maxlength
@@ -89,7 +89,7 @@ SimpleForm.setup do |config|
89
89
  end
90
90
  end
91
91
 
92
- config.wrappers :horizontal_boolean, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
92
+ config.wrappers :horizontal_boolean, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
93
93
  b.use :html5
94
94
  b.optional :readonly
95
95
  b.use :label, class: 'col-sm-3 col-md-2 col-form-label'
@@ -102,7 +102,7 @@ SimpleForm.setup do |config|
102
102
  end
103
103
  end
104
104
 
105
- config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
105
+ config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
106
106
  b.use :html5
107
107
  b.optional :readonly
108
108
 
@@ -114,7 +114,7 @@ SimpleForm.setup do |config|
114
114
  end
115
115
  end
116
116
 
117
- config.wrappers :inline_form, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
117
+ config.wrappers :inline_form, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
118
118
  b.use :html5
119
119
  b.use :placeholder
120
120
  b.optional :maxlength
@@ -128,7 +128,7 @@ SimpleForm.setup do |config|
128
128
  error_and_hint.call(b)
129
129
  end
130
130
 
131
- config.wrappers :multi_select, tag: 'div', class: 'form-group', error_class: 'has-invalid' do |b|
131
+ config.wrappers :multi_select, tag: 'div', class: 'mb-3', error_class: 'has-invalid' do |b|
132
132
  b.use :html5
133
133
  b.optional :readonly
134
134
  b.use :label, class: 'control-label'
@@ -12,7 +12,7 @@
12
12
  <tbody>
13
13
 
14
14
  <%% @<%= plural_table_name %>.each do |<%= singular_table_name %>| %>
15
- <%%= content_tag_for(:tr, <%= singular_table_name %>) do %>
15
+ <%%= content_tag(:tr, id: dom_id(<%= singular_table_name %>), class: dom_class(<%= singular_table_name %>)) do %>
16
16
  <% attributes.each do |attribute| -%>
17
17
  <td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
18
18
  <% end -%>
@@ -1,4 +1,4 @@
1
1
  module Wobauth
2
- VERSION = "5.1.1".freeze
3
- RELEASEDATE = "2020-10-03".freeze
2
+ VERSION = "6.0.1".freeze
3
+ RELEASEDATE = "2021-09-18".freeze
4
4
  end
data/spec/factories.rb CHANGED
@@ -1,12 +1,28 @@
1
1
  FactoryBot.define do
2
2
 
3
+ sequence :email, 10000 do |n|
4
+ "person#{n}@example.net"
5
+ end
6
+
7
+ sequence :group do |n|
8
+ "group_#{n}"
9
+ end
10
+
11
+ sequence :username do |n|
12
+ "user_#{n}"
13
+ end
14
+
15
+ sequence :name do |n|
16
+ "name_#{n}"
17
+ end
18
+
3
19
  factory :authority, class: Wobauth::Authority do
4
20
  association :authorizable, factory: :user
5
21
  role
6
22
  end
7
23
 
8
24
  factory :group, class: Wobauth::Group do
9
- sequence(:name) { |n| "name_#{n}" }
25
+ name { generate(:name) }
10
26
  end
11
27
 
12
28
  factory :membership, class: Wobauth::Membership do
@@ -15,12 +31,12 @@ FactoryBot.define do
15
31
  end
16
32
 
17
33
  factory :role, class: Wobauth::Role do
18
- sequence(:name) { |n| "name_#{n}" }
34
+ name { generate(:name) }
19
35
  end
20
36
 
21
37
  factory :user, class: Wobauth::User do
22
- sequence(:username) { |n| "user#{n}" }
23
- sequence(:email, 1000) { |n| "user#{n}@example.net" }
38
+ username { generate(:username) }
39
+ email { generate(:email) }
24
40
  password { "test99" }
25
41
  password_confirmation { "test99" }
26
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wobauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.1
4
+ version: 6.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wolfgang Barth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-03 00:00:00.000000000 Z
11
+ date: 2021-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.0'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: wobapphelpers
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">"
32
32
  - !ruby/object:Gem::Version
33
- version: '4.1'
33
+ version: '4.99'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">"
39
39
  - !ruby/object:Gem::Version
40
- version: '4.1'
40
+ version: '4.99'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: wobaduser
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -150,20 +150,6 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: record_tag_helper
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: '1.0'
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: '1.0'
167
153
  - !ruby/object:Gem::Dependency
168
154
  name: font-awesome-sass
169
155
  requirement: !ruby/object:Gem::Requirement
@@ -188,16 +174,16 @@ dependencies:
188
174
  name: wobapphelpers
189
175
  requirement: !ruby/object:Gem::Requirement
190
176
  requirements:
191
- - - "~>"
177
+ - - ">"
192
178
  - !ruby/object:Gem::Version
193
- version: '4.0'
179
+ version: '4.99'
194
180
  type: :development
195
181
  prerelease: false
196
182
  version_requirements: !ruby/object:Gem::Requirement
197
183
  requirements:
198
- - - "~>"
184
+ - - ">"
199
185
  - !ruby/object:Gem::Version
200
- version: '4.0'
186
+ version: '4.99'
201
187
  - !ruby/object:Gem::Dependency
202
188
  name: wobaduser
203
189
  requirement: !ruby/object:Gem::Requirement
@@ -352,20 +338,6 @@ dependencies:
352
338
  - - ">="
353
339
  - !ruby/object:Gem::Version
354
340
  version: '0'
355
- - !ruby/object:Gem::Dependency
356
- name: record_tag_helper
357
- requirement: !ruby/object:Gem::Requirement
358
- requirements:
359
- - - "~>"
360
- - !ruby/object:Gem::Version
361
- version: '1.0'
362
- type: :development
363
- prerelease: false
364
- version_requirements: !ruby/object:Gem::Requirement
365
- requirements:
366
- - - "~>"
367
- - !ruby/object:Gem::Version
368
- version: '1.0'
369
341
  - !ruby/object:Gem::Dependency
370
342
  name: rails-controller-testing
371
343
  requirement: !ruby/object:Gem::Requirement
@@ -554,6 +526,20 @@ dependencies:
554
526
  - - ">="
555
527
  - !ruby/object:Gem::Version
556
528
  version: '0'
529
+ - !ruby/object:Gem::Dependency
530
+ name: webpacker
531
+ requirement: !ruby/object:Gem::Requirement
532
+ requirements:
533
+ - - "~>"
534
+ - !ruby/object:Gem::Version
535
+ version: '5.0'
536
+ type: :development
537
+ prerelease: false
538
+ version_requirements: !ruby/object:Gem::Requirement
539
+ requirements:
540
+ - - "~>"
541
+ - !ruby/object:Gem::Version
542
+ version: '5.0'
557
543
  description: Rails engine providing MVCs for User, Group, Role, Membership and Authority
558
544
  email: wob@swobspace.de
559
545
  executables: []
@@ -684,7 +670,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
684
670
  - !ruby/object:Gem::Version
685
671
  version: '0'
686
672
  requirements: []
687
- rubygems_version: 3.0.3
673
+ rubygems_version: 3.1.6
688
674
  signing_key:
689
675
  specification_version: 4
690
676
  summary: Rails engine providing MVCs for User, Group, Role, Membership and Authority