acts_as_joinable 1.3.2 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
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: []
|