lib/lockdown/configuration.rb in lockdown-2.0.4 vs lib/lockdown/configuration.rb in lockdown-2.0.5

- old
+ new

@@ -47,10 +47,13 @@ # Default "User" attr_accessor :user_model # Which environments Lockdown should not sync with db # Default ['test'] attr_accessor :skip_db_sync_in + # Slice size for permission regexes + # Default 10 + attr_accessor :permission_slice_size # Set defaults. def reset @configured = false @public_access = "" @protected_access = "" @@ -68,10 +71,11 @@ @user_group_model = "UserGroup" @user_model = "User" @skip_db_sync_in = ['test'] + @permission_slice_size = 10 end # @return [String] concatentation of public_access + "|" + protected_access def authenticated_access public_access + "|" + protected_access @@ -180,20 +184,24 @@ ug.permissions.each do |p| permission_names << p.name end end - if permission_names.empty? - authenticated_access - else - authenticated_access + "|" + access_rights_for_permissions(*permission_names) + slice_permission_regexes(authenticated_access, access_rights_for_permissions(*permission_names)) + end + + def slice_permission_regexes(authenticated_access, permissions) + result = [authenticated_access] + permissions.each_slice(permission_slice_size) do |permission_slice| + result << permission_slice.join('|') end + result end # @param [Array(String)] names permission names # @return [String] combination of regex_patterns from permissions def access_rights_for_permissions(*names) - names.collect{|name| "(#{permission(name).regex_pattern})"}.join('|') + names.collect{|name| "(#{permission(name).regex_pattern})"} end def skip_sync? true end