- group_perms = {}
- conn.exec_query('SELECT target_owner_uuid, max(perm_level)
- FROM permission_view
- WHERE user_uuid = $1
- AND target_owner_uuid IS NOT NULL
- GROUP BY target_owner_uuid',
- "group_permissions for #{uuid}",
- [[nil, uuid]]).rows.each do |group_uuid, max_p_val|
- group_perms[group_uuid] = PERMS_FOR_VAL[max_p_val.to_i]
+ # Return a hash of {user_uuid: group_perms}
+ def self.all_group_permissions
+ all_perms = {}
+ ActiveRecord::Base.connection.
+ exec_query("SELECT user_uuid, target_owner_uuid, perm_level, trashed
+ FROM #{PERMISSION_VIEW}
+ WHERE target_owner_uuid IS NOT NULL",
+ # "name" arg is a query label that appears in logs:
+ "all_group_permissions",
+ ).rows.each do |user_uuid, group_uuid, max_p_val, trashed|
+ all_perms[user_uuid] ||= {}
+ all_perms[user_uuid][group_uuid] = PERMS_FOR_VAL[max_p_val.to_i]