lockdown 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,6 +18,18 @@ module Lockdown
18
18
  underscore(Lockdown::System.fetch(:user_group_model).to_s).pluralize.to_sym
19
19
  end
20
20
 
21
+ def user_group_id_reference
22
+ underscore(Lockdown::System.fetch(:user_group_model).to_s)
23
+ end
24
+
25
+ def users_hbtm_reference
26
+ underscore(Lockdown::System.fetch(:user_model).to_s).pluralize.to_sym
27
+ end
28
+
29
+ def user_id_reference
30
+ underscore(Lockdown::System.fetch(:user_model).to_s)
31
+ end
32
+
21
33
  def get_string(value)
22
34
  if value.respond_to?(:name)
23
35
  string_name(value.name)
@@ -209,17 +209,23 @@ module Lockdown
209
209
  # him/her self.
210
210
  def user_groups_assignable_for_user(usr)
211
211
  return [] if usr.nil?
212
-
212
+ ug_table = Lockdown.user_groups_hbtm_reference.to_s
213
213
  if administrator?(usr)
214
214
  Lockdown::System.fetch(:user_group_model).find_by_sql <<-SQL
215
- select user_groups.* from user_groups order by user_groups.name
215
+ select #{ug_table}.* from #{ug_table} order by #{ug_table}.name
216
216
  SQL
217
217
  else
218
+ usr_table = Lockdown.users_hbtm_reference.to_s
219
+ if usr_table < ug_table
220
+ join_table = "#{usr_table}_#{ug_table}"
221
+ else
222
+ join_table = "#{ug_table}_#{usr_table}"
223
+ end
218
224
  Lockdown::System.fetch(:user_group_model).find_by_sql <<-SQL
219
- select user_groups.* from user_groups, user_groups_users
220
- where user_groups.id = user_groups_users.user_group_id
221
- and user_groups_users.user_id = #{usr.id}
222
- order by user_groups.name
225
+ select #{ug_table}.* from #{ug_table}, #{join_table}
226
+ where #{ug_table}.id = #{join_table}.#{Lockdown.user_group_id_reference}
227
+ and #{join_table}.#{Lockdown.user_id_reference} = #{usr.id}
228
+ order by #{ug_table}.name
223
229
  SQL
224
230
  end
225
231
  end
data/lib/lockdown.rb CHANGED
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), "lockdown", "helper")
3
3
  module Lockdown
4
4
  extend Lockdown::Helper
5
5
 
6
- VERSION = '1.1.2'
6
+ VERSION = '1.1.3'
7
7
 
8
8
  # Returns the version string for the library.
9
9
  def self.version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lockdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Stone