acts_as_joinable 1.3.2 → 1.3.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
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9b4ac9e08c575585c4b56af01499d379e7768862
|
4
|
+
data.tar.gz: cd9b20b10964f2a52963388ee7f66979ed5ad41e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5bbd8c8d862ed5951d0de60ee37daded85db2520ec1b7f6e3067d8865b759bf00d6de15b52184a6149be9abe1187f2e87624a11eb0357f7df26a683cf0a8fc7b
|
7
|
+
data.tar.gz: 9be64c7ee4ebd5eccfee5585ded7fc175fa5e1c89ddae5315cf8229f70fc360dd013fcacb52255cd304dc751fb11ae9cc0a7238433d83bcfd4901b96983a6a45
|
@@ -48,7 +48,7 @@ module Joinable #:nodoc:
|
|
48
48
|
base.class_eval do
|
49
49
|
cattr_accessor :permissions, :component_permissions_hash
|
50
50
|
|
51
|
-
has_many :membership_invitations, :as => :joinable, :dependent => :destroy, :before_add => :add_initiator
|
51
|
+
has_many :membership_invitations, :as => :joinable, :dependent => :destroy, :before_add => :add_initiator, :before_remove => :add_initiator
|
52
52
|
has_many :membership_requests, :as => :joinable, :dependent => :destroy
|
53
53
|
has_many :memberships, lambda { order :id }, :as => :joinable, :dependent => :destroy, :before_remove => :add_initiator
|
54
54
|
|
@@ -121,14 +121,7 @@ module Joinable #:nodoc:
|
|
121
121
|
# * collaborate - This is a faux permission. A user has permission to collaborate if they have any additional permissions above the standard viewer permissions.
|
122
122
|
def with_permission_sql(user, permission, options = {})
|
123
123
|
permission = permission.to_sym
|
124
|
-
|
125
|
-
case user
|
126
|
-
when String
|
127
|
-
user_id = user
|
128
|
-
when
|
129
|
-
user_id = user.id
|
130
|
-
end
|
131
|
-
|
124
|
+
user_id = user.respond_to?(:id) ? user.id : user # Support objects that aren't ActiveRecord::Base but respond to id
|
132
125
|
joinable_id = options[:id_column] || "#{table_name}.id"
|
133
126
|
|
134
127
|
if permission == :find
|
@@ -197,7 +190,7 @@ module Joinable #:nodoc:
|
|
197
190
|
if cached_membership_request != nil
|
198
191
|
cached_membership_request
|
199
192
|
else
|
200
|
-
membership_requests.where(:user_id => user
|
193
|
+
membership_requests.where(:user_id => user).first
|
201
194
|
end
|
202
195
|
end
|
203
196
|
|
@@ -215,7 +208,7 @@ module Joinable #:nodoc:
|
|
215
208
|
if cached_membership_invitation != nil
|
216
209
|
cached_membership_invitation
|
217
210
|
else
|
218
|
-
membership_invitations.where(:user_id => user
|
211
|
+
membership_invitations.where(:user_id => user).first
|
219
212
|
end
|
220
213
|
end
|
221
214
|
|
@@ -228,17 +221,17 @@ module Joinable #:nodoc:
|
|
228
221
|
# user. This method also supports caching of a membership
|
229
222
|
# request in order to facilitate eager loading.
|
230
223
|
#NOTE: See :membership_request_for documentation for an in depth example of this type of behaviour
|
231
|
-
def membership_for(
|
224
|
+
def membership_for(user)
|
232
225
|
if cached_membership != nil
|
233
226
|
cached_membership
|
234
227
|
else
|
235
|
-
memberships.where(:user_id =>
|
228
|
+
memberships.where(:user_id => user).first
|
236
229
|
end
|
237
230
|
end
|
238
231
|
|
239
232
|
# Find out whether this Joinable has a membership for a certain user and return true, else false
|
240
|
-
def membership_for?(
|
241
|
-
!membership_for(
|
233
|
+
def membership_for?(user)
|
234
|
+
!membership_for(user).nil?
|
242
235
|
end
|
243
236
|
|
244
237
|
# Returns a unique cache key any time the memberships were updated for this joinable
|
@@ -60,16 +60,8 @@ module Joinable #:nodoc:
|
|
60
60
|
# after they join a project, we need to check the default_permission_set of the project.
|
61
61
|
def with_permission_sql(user, permission, options = {})
|
62
62
|
permission = permission.to_s
|
63
|
-
|
64
|
-
case user
|
65
|
-
when String
|
66
|
-
user_id = user
|
67
|
-
else
|
68
|
-
user_id = user.id
|
69
|
-
end
|
70
|
-
|
63
|
+
user_id = user.respond_to?(:id) ? user.id : user # Support objects that aren't ActiveRecord::Base but respond to id
|
71
64
|
component_id_column = options[:id_column] || "#{table_name}.id"
|
72
|
-
|
73
65
|
permission_without_join_and_prefix = permission.gsub('join_and_', '')
|
74
66
|
permission_or_column = permission_without_join_and_prefix == 'view' ? "permission_links.component_view_permission" : "'#{permission_without_join_and_prefix}'"
|
75
67
|
|
@@ -15,6 +15,11 @@ module Joinable #:nodoc:
|
|
15
15
|
where(with_permission_sql(user, permission))
|
16
16
|
end
|
17
17
|
|
18
|
+
# Returns all records where the given user does not have the given permission
|
19
|
+
def without_permission(user, permission)
|
20
|
+
where.not(with_permission_sql(user, permission))
|
21
|
+
end
|
22
|
+
|
18
23
|
# Returns an SQL fragment for a WHERE condition that evaluates to true if the user has the given permission
|
19
24
|
# For use when asking
|
20
25
|
def with_permission_sql(user, permission, options = {})
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_joinable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
5
|
-
prerelease:
|
4
|
+
version: 1.3.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ryan Wallace
|
@@ -15,7 +14,6 @@ dependencies:
|
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: pg
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - '>='
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - '>='
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: rails
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ~>
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ~>
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: sqlite3
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - '>='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - '>='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -84,26 +77,25 @@ files:
|
|
84
77
|
- README.rdoc
|
85
78
|
homepage: http://github.com/rrn/acts_as_joinable
|
86
79
|
licenses: []
|
80
|
+
metadata: {}
|
87
81
|
post_install_message:
|
88
82
|
rdoc_options: []
|
89
83
|
require_paths:
|
90
84
|
- lib
|
91
85
|
required_ruby_version: !ruby/object:Gem::Requirement
|
92
|
-
none: false
|
93
86
|
requirements:
|
94
87
|
- - '>='
|
95
88
|
- !ruby/object:Gem::Version
|
96
89
|
version: '0'
|
97
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
91
|
requirements:
|
100
92
|
- - '>='
|
101
93
|
- !ruby/object:Gem::Version
|
102
94
|
version: '0'
|
103
95
|
requirements: []
|
104
96
|
rubyforge_project:
|
105
|
-
rubygems_version:
|
97
|
+
rubygems_version: 2.0.5
|
106
98
|
signing_key:
|
107
|
-
specification_version:
|
99
|
+
specification_version: 4
|
108
100
|
summary: An easy to use permissions system
|
109
101
|
test_files: []
|