lato_spaces 3.1.24 → 3.2.0
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3444a3028e399641c312a023bf6ac4ac02815747ed0bb6185a07120800a6d4ee
|
|
4
|
+
data.tar.gz: e29d329206491723e51c31ce8a97a73b9c7d5410fa2653bbf12a576f605f6327
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9f51a50f75322d535d2bae852ad86554069ca4c2f292cc6a750b69eb93082bfd07c6af2a9f4c72466372827338c79ab3803cdd119961ff35763c1e96291b2ad8
|
|
7
|
+
data.tar.gz: def89bea0b5460d7109c9e07fdc362fc220ae2b2b54e1ca43bfa56c81b4c6e31e7428754995913453b3bdbaf2b7981ae2594faf09bfbd955f98b2f35ee3eaea2
|
data/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# Lato Spaces
|
|
2
2
|
Integrate different workspaces on Lato projects.
|
|
3
3
|
|
|
4
|
+
Group selection requires a current membership. Every request protected by `authenticate_group` rechecks access and clears revoked selections. Users with `lato_spaces_admin` can select and manage all groups. When non-admin management is enabled, membership deletion and invitation resends are restricted to their own groups.
|
|
5
|
+
|
|
4
6
|
## Installation
|
|
7
|
+
|
|
8
|
+
Requires Rails 8.1.3.1 or newer in the 8.1 series and Lato 3.25.0 or newer. Existing applications must install the new Lato session migration before deployment; previous sessions are invalidated.
|
|
5
9
|
Add required dependencies to your application's Gemfile:
|
|
6
10
|
|
|
7
11
|
```ruby
|
|
@@ -2,7 +2,9 @@ module LatoSpaces::Groupable
|
|
|
2
2
|
extend ActiveSupport::Concern
|
|
3
3
|
|
|
4
4
|
def authenticate_group
|
|
5
|
-
|
|
5
|
+
group_id = @session.get(:spaces_group_id)
|
|
6
|
+
unless group_id.present? && accessible_spaces_groups.exists?(id: group_id)
|
|
7
|
+
session_group_destroy if group_id.present?
|
|
6
8
|
redirect_to lato_spaces.root_path
|
|
7
9
|
return false
|
|
8
10
|
end
|
|
@@ -11,16 +13,22 @@ module LatoSpaces::Groupable
|
|
|
11
13
|
end
|
|
12
14
|
|
|
13
15
|
def session_group_create(group_id)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
group = accessible_spaces_groups.find_by(id: group_id)
|
|
17
|
+
return false unless group
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
session_update(spaces_group_id: group.id)
|
|
18
20
|
end
|
|
19
21
|
|
|
20
22
|
def session_group_destroy
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
session_update(spaces_group_id: nil)
|
|
24
|
+
end
|
|
23
25
|
|
|
24
|
-
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def accessible_spaces_groups
|
|
29
|
+
return LatoSpaces::Group.none unless @session.really_valid?
|
|
30
|
+
return LatoSpaces::Group.all if @session.user.lato_spaces_admin
|
|
31
|
+
|
|
32
|
+
LatoSpaces::Group.where(id: LatoSpaces::Membership.where(lato_user_id: @session.user_id).select(:lato_spaces_group_id))
|
|
25
33
|
end
|
|
26
34
|
end
|
|
@@ -96,9 +96,7 @@ module LatoSpaces
|
|
|
96
96
|
end
|
|
97
97
|
|
|
98
98
|
def find_group
|
|
99
|
-
|
|
100
|
-
query = query.joins(:lato_spaces_memberships).where(lato_spaces_memberships: { lato_user_id: @session.user_id }) unless @session.user.lato_spaces_admin
|
|
101
|
-
@group = query.find(params[:id])
|
|
99
|
+
@group = accessible_spaces_groups.find(params[:id])
|
|
102
100
|
end
|
|
103
101
|
end
|
|
104
|
-
end
|
|
102
|
+
end
|
|
@@ -56,13 +56,11 @@ module LatoSpaces
|
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def find_group
|
|
59
|
-
|
|
60
|
-
query = query.joins(:lato_spaces_memberships).where(lato_spaces_memberships: { lato_user_id: @session.user_id }) unless @session.user.lato_spaces_admin
|
|
61
|
-
@group = query.find(params[:group_id])
|
|
59
|
+
@group = accessible_spaces_groups.find(params[:group_id])
|
|
62
60
|
end
|
|
63
61
|
|
|
64
62
|
def find_membership
|
|
65
|
-
@membership = LatoSpaces::Membership.find(params[:id])
|
|
63
|
+
@membership = LatoSpaces::Membership.where(lato_spaces_group_id: accessible_spaces_groups.select(:id)).find(params[:id])
|
|
66
64
|
end
|
|
67
65
|
end
|
|
68
|
-
end
|
|
66
|
+
end
|
data/lib/lato_spaces/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lato_spaces
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gregorio Galante
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rails
|
|
@@ -16,28 +15,34 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
18
|
+
version: 8.1.3.1
|
|
19
|
+
- - "<"
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
21
|
+
version: '8.2'
|
|
20
22
|
type: :runtime
|
|
21
23
|
prerelease: false
|
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
25
|
requirements:
|
|
24
26
|
- - ">="
|
|
25
27
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
28
|
+
version: 8.1.3.1
|
|
29
|
+
- - "<"
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '8.2'
|
|
27
32
|
- !ruby/object:Gem::Dependency
|
|
28
33
|
name: lato
|
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
|
30
35
|
requirements:
|
|
31
36
|
- - ">="
|
|
32
37
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
38
|
+
version: 3.25.0
|
|
34
39
|
type: :runtime
|
|
35
40
|
prerelease: false
|
|
36
41
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
42
|
requirements:
|
|
38
43
|
- - ">="
|
|
39
44
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
45
|
+
version: 3.25.0
|
|
41
46
|
description: A Rails engine to integrate different workspaces on Lato projects!
|
|
42
47
|
email:
|
|
43
48
|
- me@gregoriogalante.com
|
|
@@ -98,7 +103,6 @@ licenses:
|
|
|
98
103
|
metadata:
|
|
99
104
|
homepage_uri: https://github.com/Lato-org/lato_spaces
|
|
100
105
|
source_code_uri: https://github.com/Lato-org/lato_spaces
|
|
101
|
-
post_install_message:
|
|
102
106
|
rdoc_options: []
|
|
103
107
|
require_paths:
|
|
104
108
|
- lib
|
|
@@ -113,8 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
113
117
|
- !ruby/object:Gem::Version
|
|
114
118
|
version: '0'
|
|
115
119
|
requirements: []
|
|
116
|
-
rubygems_version:
|
|
117
|
-
signing_key:
|
|
120
|
+
rubygems_version: 4.0.9
|
|
118
121
|
specification_version: 4
|
|
119
122
|
summary: Another engine for Lato projects
|
|
120
123
|
test_files: []
|