vigilante 1.0.0 → 1.0.1
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.
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/VERSION +1 -1
- data/app/controllers/abilities_controller.rb +29 -1
- data/app/models/ability.rb +3 -0
- data/app/models/ability_permission.rb +2 -0
- data/app/views/abilities/_ability_permission_fields.html.haml +11 -0
- data/app/views/abilities/_form.html.haml +19 -0
- data/app/views/abilities/_permission_fields.html.haml +2 -0
- data/app/views/abilities/edit.html.haml +3 -0
- data/app/views/abilities/index.html.haml +2 -0
- data/app/views/abilities/new.html.haml +3 -0
- data/app/views/abilities/show.html.haml +66 -63
- data/lib/db/migrate/20130829160700_add_importance_to_abilities.rb +7 -0
- data/lib/vigilante/authorization.rb +50 -30
- data/lib/vigilante/watched_operator.rb +1 -1
- data/vigilante.gemspec +152 -0
- metadata +42 -59
- /data/lib/generators/vigilante/install/templates/{watchman_config.yml → vigilante_config.yml} +0 -0
    
        data/Gemfile
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -35,8 +35,8 @@ GEM | |
| 35 35 | 
             
                  abstract (>= 1.0.0)
         | 
| 36 36 | 
             
                git (1.2.5)
         | 
| 37 37 | 
             
                i18n (0.5.0)
         | 
| 38 | 
            -
                jeweler (1. | 
| 39 | 
            -
                  bundler (~> 1.0 | 
| 38 | 
            +
                jeweler (1.6.4)
         | 
| 39 | 
            +
                  bundler (~> 1.0)
         | 
| 40 40 | 
             
                  git (>= 1.2.5)
         | 
| 41 41 | 
             
                  rake
         | 
| 42 42 | 
             
                mail (2.2.14)
         | 
| @@ -64,7 +64,7 @@ GEM | |
| 64 64 | 
             
                  activesupport (= 3.0.3)
         | 
| 65 65 | 
             
                  rake (>= 0.8.7)
         | 
| 66 66 | 
             
                  thor (~> 0.14.4)
         | 
| 67 | 
            -
                rake (0. | 
| 67 | 
            +
                rake (0.9.2)
         | 
| 68 68 | 
             
                remarkable (4.0.0.alpha4)
         | 
| 69 69 | 
             
                  rspec (>= 2.0.0.alpha11)
         | 
| 70 70 | 
             
                remarkable_activemodel (4.0.0.alpha4)
         | 
| @@ -98,7 +98,7 @@ PLATFORMS | |
| 98 98 |  | 
| 99 99 | 
             
            DEPENDENCIES
         | 
| 100 100 | 
             
              jeweler
         | 
| 101 | 
            -
              rails ( | 
| 101 | 
            +
              rails (>= 3.0.3)
         | 
| 102 102 | 
             
              remarkable (>= 4.0.0.alpha4)
         | 
| 103 103 | 
             
              remarkable_activemodel (>= 4.0.0.alpha4)
         | 
| 104 104 | 
             
              remarkable_activerecord (>= 4.0.0.alpha4)
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            1.0. | 
| 1 | 
            +
            1.0.1
         | 
| @@ -10,9 +10,37 @@ class AbilitiesController < ApplicationController | |
| 10 10 | 
             
                @ability = Ability.find(params[:id])
         | 
| 11 11 | 
             
              end
         | 
| 12 12 |  | 
| 13 | 
            +
              def new
         | 
| 14 | 
            +
                @ability = Ability.new
         | 
| 15 | 
            +
              end
         | 
| 13 16 |  | 
| 14 | 
            -
             | 
| 17 | 
            +
              def create
         | 
| 18 | 
            +
                @ability = Ability.new(params[:ability])
         | 
| 19 | 
            +
                if @ability.save
         | 
| 20 | 
            +
                  flash[:notice] = t('ability.created')
         | 
| 21 | 
            +
                  redirect_to :action => :index
         | 
| 22 | 
            +
                else
         | 
| 23 | 
            +
                  render 'new'
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
             | 
| 28 | 
            +
              def edit
         | 
| 29 | 
            +
                @ability = Ability.find(params[:id])
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              def update
         | 
| 33 | 
            +
                @ability = Ability.find(params[:id])
         | 
| 15 34 |  | 
| 35 | 
            +
                if @ability.update_attributes(params[:ability])
         | 
| 36 | 
            +
                  flash[:notice] = t('ability.saved')
         | 
| 37 | 
            +
                  redirect_to :action => :index
         | 
| 38 | 
            +
                else
         | 
| 39 | 
            +
                  render 'edit'
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            private
         | 
| 16 44 |  | 
| 17 45 |  | 
| 18 46 | 
             
            end
         | 
    
        data/app/models/ability.rb
    CHANGED
    
    | @@ -2,5 +2,8 @@ class Ability < ActiveRecord::Base | |
| 2 2 | 
             
              has_many :ability_permissions
         | 
| 3 3 | 
             
              has_many :permissions, :through => :ability_permissions
         | 
| 4 4 |  | 
| 5 | 
            +
              accepts_nested_attributes_for :permissions
         | 
| 6 | 
            +
              accepts_nested_attributes_for :ability_permissions
         | 
| 7 | 
            +
             | 
| 5 8 | 
             
              scope :that_need_extent, lambda { where('needs_extent=?', true)}
         | 
| 6 9 | 
             
            end
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            .nested-fields.ability-permission-fields
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              .row-fluid
         | 
| 4 | 
            +
                .span4
         | 
| 5 | 
            +
                  #permission_from_list
         | 
| 6 | 
            +
                    = f.association :permission, :collection => Permission.all(:order => 'allowed_action'), :prompt => 'Choose an existing permission', :label_method => :allowed_action
         | 
| 7 | 
            +
                .span4
         | 
| 8 | 
            +
                  #actions-on-permission{:style => 'line-height: 20px; margin-top: 5px;'}
         | 
| 9 | 
            +
                    - if f.object.new_record?
         | 
| 10 | 
            +
                      = link_to_add_association 'or create a new permission', f, :permission
         | 
| 11 | 
            +
                    = link_to_remove_association "remove permission", f
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            = simple_form_for @ability, :html => {:class => 'form-horizontal' } do |f|
         | 
| 3 | 
            +
              = f.input :name
         | 
| 4 | 
            +
              = f.input :description
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              %h2 Allowed actions
         | 
| 7 | 
            +
              #permissions
         | 
| 8 | 
            +
                = f.simple_fields_for :ability_permissions do |abp|
         | 
| 9 | 
            +
                  = render 'ability_permission_fields', :f => abp
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              .control-group
         | 
| 12 | 
            +
                .controls
         | 
| 13 | 
            +
                  = link_to_add_association 'add a permission', f, :ability_permissions
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              .control-group
         | 
| 16 | 
            +
                .controls
         | 
| 17 | 
            +
                  = f.submit "Save", :class=>"btn btn-primary"
         | 
| 18 | 
            +
                  = link_to "Cancel", abilities_path, :class => 'btn'
         | 
| 19 | 
            +
             | 
| @@ -1,71 +1,74 @@ | |
| 1 | 
            -
            %table.resource_attributes
         | 
| 2 | 
            -
              %tr
         | 
| 3 | 
            -
                %th Name
         | 
| 4 | 
            -
                %td= @ability.name
         | 
| 5 | 
            -
              %tr
         | 
| 6 | 
            -
                %th Description
         | 
| 7 | 
            -
                %td= @ability.description
         | 
| 8 1 |  | 
| 2 | 
            +
            .span6
         | 
| 3 | 
            +
              %table.table
         | 
| 4 | 
            +
                %tr
         | 
| 5 | 
            +
                  %th Name
         | 
| 6 | 
            +
                  %td= @ability.name
         | 
| 7 | 
            +
                %tr
         | 
| 8 | 
            +
                  %th Description
         | 
| 9 | 
            +
                  %td= @ability.description
         | 
| 9 10 |  | 
| 10 | 
            -
            %h2 Allowed actions
         | 
| 11 11 |  | 
| 12 | 
            +
              %h2 Allowed actions
         | 
| 12 13 |  | 
| 14 | 
            +
              %table.table
         | 
| 15 | 
            +
                - @ability.permissions.each do |perm|
         | 
| 16 | 
            +
                  %tr
         | 
| 17 | 
            +
                    %td= perm.allowed_action
         | 
| 13 18 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
              - @ability.permissions.each do |perm|
         | 
| 16 | 
            -
                %tr
         | 
| 17 | 
            -
                  %td= perm.allowed_action
         | 
| 19 | 
            +
              = link_to 'Edit', edit_ability_path(@ability), :class => 'btn btn-mini' if is_allowed_to?(@ability, :edit)
         | 
| 18 20 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
               | 
| 21 | 
            -
                 | 
| 21 | 
            +
            .span4
         | 
| 22 | 
            +
              #abilities_explanation.help_text.well
         | 
| 23 | 
            +
                %p
         | 
| 24 | 
            +
                  Allowed actions are specified as follows:
         | 
| 22 25 |  | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
             | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 65 | 
            -
             | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
             | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 26 | 
            +
                %ul
         | 
| 27 | 
            +
                  %li
         | 
| 28 | 
            +
                    %pre
         | 
| 29 | 
            +
                      posts[index, show]
         | 
| 30 | 
            +
                    %ul
         | 
| 31 | 
            +
                      %li
         | 
| 32 | 
            +
                        Only the things that are explicitly specified are allowed.
         | 
| 33 | 
            +
                        This declares that on the
         | 
| 34 | 
            +
                        %tt
         | 
| 35 | 
            +
                          PostsController
         | 
| 36 | 
            +
                        only
         | 
| 37 | 
            +
                        %tt
         | 
| 38 | 
            +
                          index
         | 
| 39 | 
            +
                        and
         | 
| 40 | 
            +
                        %tt
         | 
| 41 | 
            +
                          show
         | 
| 42 | 
            +
                        are allowed.
         | 
| 43 | 
            +
                  %li
         | 
| 44 | 
            +
                    %pre
         | 
| 45 | 
            +
                      *[index, show, report]
         | 
| 46 | 
            +
                    %ul
         | 
| 47 | 
            +
                      %li
         | 
| 48 | 
            +
                        We also allow wild-cards. Instead of a controller-name, we could write
         | 
| 49 | 
            +
                        %tt
         | 
| 50 | 
            +
                          *
         | 
| 51 | 
            +
                        which would mean the specified actions would apply to all controllers.
         | 
| 52 | 
            +
                  %li
         | 
| 53 | 
            +
                    %pre
         | 
| 54 | 
            +
                      posts[all]
         | 
| 55 | 
            +
                    %ul
         | 
| 56 | 
            +
                      %li
         | 
| 57 | 
            +
                        If we write
         | 
| 58 | 
            +
                        %tt
         | 
| 59 | 
            +
                          all
         | 
| 60 | 
            +
                        instead of a specific action or list of actions, then all actions are allowed for a given controller.
         | 
| 61 | 
            +
                        In this case a user has the ability to access all actions inside the posts_controller.
         | 
| 62 | 
            +
                  %li
         | 
| 63 | 
            +
                    %pre
         | 
| 64 | 
            +
                      *[all]
         | 
| 65 | 
            +
                    %ul
         | 
| 66 | 
            +
                      %li
         | 
| 67 | 
            +
                        By extension, this means a user has the ability to access all actions from all controllers.
         | 
| 68 | 
            +
                %p
         | 
| 69 | 
            +
                  When abilities are assigned (authorisation), it is possible to specify the extent of the ability.
         | 
| 70 | 
            +
                  What this means depends on your website, but in case of e.g. a blog-host (like blogger), this means that a
         | 
| 71 | 
            +
                  %tt
         | 
| 72 | 
            +
                    author
         | 
| 73 | 
            +
                  's permissions could only be valid on those blogs he owns or has access to.
         | 
| 71 74 |  | 
| @@ -2,9 +2,25 @@ module Vigilante | |
| 2 2 | 
             
              module Authorization
         | 
| 3 3 |  | 
| 4 4 | 
             
                def self.included(base)
         | 
| 5 | 
            +
                  current_user_method = VIGILANTE_CONFIG['current_user_method']
         | 
| 6 | 
            +
             | 
| 5 7 | 
             
                  base.helper_method :is_allowed_to?
         | 
| 6 | 
            -
                  base.helper_method  | 
| 7 | 
            -
                  base.helper_method  | 
| 8 | 
            +
                  base.helper_method "get_#{current_user_method}_extent_of".to_sym
         | 
| 9 | 
            +
                  base.helper_method "get_#{current_user_method}_permissions_are_global?".to_sym
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                  define_method "get_#{current_user_method}_extent_of" do |controller_name, action|
         | 
| 12 | 
            +
                    get_protectee_permissions.get_extent_of(controller_name, action)
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  # needed? --> tells if the current_operator has only global permissions
         | 
| 16 | 
            +
                  define_method "get_#{current_user_method}_permissions_are_global?" do
         | 
| 17 | 
            +
                    get_protectee_permissions.are_only_global?
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  define_method "get_#{current_user_method}_permissions" do
         | 
| 21 | 
            +
                    get_protectee_permissions
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
             | 
| 8 24 | 
             
                end
         | 
| 9 25 |  | 
| 10 26 | 
             
                # ******************************************************************
         | 
| @@ -26,6 +42,19 @@ module Vigilante | |
| 26 42 | 
             
                  self.send(application_method) if application_method.present?
         | 
| 27 43 | 
             
                end
         | 
| 28 44 |  | 
| 45 | 
            +
                # this will return the current user/operator/... that is guarded by vigilante
         | 
| 46 | 
            +
                def get_protectee
         | 
| 47 | 
            +
                  current_user_method = VIGILANTE_CONFIG['current_user_method']
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  Rails.logger.debug "current_user_method = #{current_user_method}"
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                  @protectee ||= self.send(current_user_method) if current_user_method.present?
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  Rails.logger.debug "Protectee = #{@protectee.user_name}"
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                  @protectee
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 29 58 |  | 
| 30 59 | 
             
                # ******************************************************************
         | 
| 31 60 | 
             
                #  explicitely call the Vigilante filter in each controller that requires Vigilante protection :
         | 
| @@ -40,7 +69,7 @@ module Vigilante | |
| 40 69 | 
             
                def check_permissions(options={})
         | 
| 41 70 | 
             
                  logger.debug "CHECK PERMISSIONS"
         | 
| 42 71 | 
             
                  # a logged in operator can do ajax-requests
         | 
| 43 | 
            -
                  return if  | 
| 72 | 
            +
                  return if get_protectee.present? && request.xhr?
         | 
| 44 73 |  | 
| 45 74 | 
             
                  controller_to_check = options[:as].nil? ? controller_name : options[:as]
         | 
| 46 75 |  | 
| @@ -83,23 +112,14 @@ module Vigilante | |
| 83 112 |  | 
| 84 113 | 
             
                def is_allowed_to?(controller_name, action, context=get_current_context_from_application)
         | 
| 85 114 | 
             
                  logger.debug "is_allowed_to? #{controller_name.inspect}##{action} [#{context.inspect}]"
         | 
| 86 | 
            -
                   | 
| 87 | 
            -
                end
         | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
                def get_current_operator_extent_of(controller_name, action)
         | 
| 91 | 
            -
                  get_current_operator_permissions.get_extent_of(controller_name, action)
         | 
| 115 | 
            +
                  get_protectee_permissions.is_allowed_by_context(controller_name, action, get_extent_from_context(context))
         | 
| 92 116 | 
             
                end
         | 
| 93 117 |  | 
| 94 | 
            -
                 | 
| 95 | 
            -
                def get_current_operator_permissions_are_global?
         | 
| 96 | 
            -
                  get_current_operator_permissions.are_only_global?
         | 
| 97 | 
            -
                end
         | 
| 98 | 
            -
                
         | 
| 99 | 
            -
                def get_current_operator_permissions
         | 
| 118 | 
            +
                def get_protectee_permissions
         | 
| 100 119 | 
             
                  @permits ||= session[:permits]
         | 
| 101 120 | 
             
                  if @permits.nil?
         | 
| 102 | 
            -
                     | 
| 121 | 
            +
                    Rails.logger.debug "determine permissions ... "
         | 
| 122 | 
            +
                    @permits = get_protectee.permits
         | 
| 103 123 | 
             
                    session[:permits] = @permits
         | 
| 104 124 | 
             
                  end
         | 
| 105 125 | 
             
                  @permits
         | 
| @@ -130,20 +150,20 @@ module Vigilante | |
| 130 150 |  | 
| 131 151 | 
             
                # ******************************************************************
         | 
| 132 152 |  | 
| 133 | 
            -
                def find_objects
         | 
| 134 | 
            -
             | 
| 135 | 
            -
             | 
| 136 | 
            -
             | 
| 137 | 
            -
             | 
| 138 | 
            -
                end
         | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
                def find_object
         | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
             | 
| 146 | 
            -
                end
         | 
| 153 | 
            +
                #def find_objects
         | 
| 154 | 
            +
                #  handle_context_for_nested_resources
         | 
| 155 | 
            +
                #  model = Kernel.const_get(model_name)
         | 
| 156 | 
            +
                #  objects = model.find_all_by_operator(get_protectee, params)
         | 
| 157 | 
            +
                #  instance_variable_set "@#{model_name.underscore.pluralize}", objects
         | 
| 158 | 
            +
                #end
         | 
| 159 | 
            +
                #
         | 
| 160 | 
            +
                #
         | 
| 161 | 
            +
                #def find_object
         | 
| 162 | 
            +
                #  handle_context_for_nested_resources
         | 
| 163 | 
            +
                #  model = Kernel.const_get(model_name)
         | 
| 164 | 
            +
                #  object = model.find_by_operator(get_protectee, params[:id], params)
         | 
| 165 | 
            +
                #  instance_variable_set "@#{model_name.underscore}", object
         | 
| 166 | 
            +
                #end
         | 
| 147 167 |  | 
| 148 168 |  | 
| 149 169 | 
             
                # returns the model-name for this controller
         | 
| @@ -19,7 +19,7 @@ module Vigilante | |
| 19 19 | 
             
              #      extent_params[:extent_type] = extent.class.name
         | 
| 20 20 | 
             
              #    end
         | 
| 21 21 |  | 
| 22 | 
            -
                  new_authorization = | 
| 22 | 
            +
                  new_authorization = ::Authorization.create(:operator_id => self.id, :ability_id => ability.id)
         | 
| 23 23 | 
             
                  unless extent.nil?
         | 
| 24 24 | 
             
                    new_authorization.add_extent(extent)
         | 
| 25 25 | 
             
                  end
         | 
    
        data/vigilante.gemspec
    ADDED
    
    | @@ -0,0 +1,152 @@ | |
| 1 | 
            +
            # Generated by jeweler
         | 
| 2 | 
            +
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 | 
            +
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |s|
         | 
| 7 | 
            +
              s.name = "vigilante"
         | 
| 8 | 
            +
              s.version = "1.0.1"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 | 
            +
              s.authors = ["Nathan Van der Auwera"]
         | 
| 12 | 
            +
              s.date = "2013-09-16"
         | 
| 13 | 
            +
              s.description = "Vigilante is a db-backed authorisation, completely configurable and dynamic; where permissions can be limited to extents."
         | 
| 14 | 
            +
              s.email = "nathan@dixis.com"
         | 
| 15 | 
            +
              s.extra_rdoc_files = [
         | 
| 16 | 
            +
                "README.markdown"
         | 
| 17 | 
            +
              ]
         | 
| 18 | 
            +
              s.files = [
         | 
| 19 | 
            +
                ".document",
         | 
| 20 | 
            +
                ".travis.yml",
         | 
| 21 | 
            +
                "Gemfile",
         | 
| 22 | 
            +
                "Gemfile.lock",
         | 
| 23 | 
            +
                "History.md",
         | 
| 24 | 
            +
                "MIT-LICENSE",
         | 
| 25 | 
            +
                "README.markdown",
         | 
| 26 | 
            +
                "Rakefile",
         | 
| 27 | 
            +
                "VERSION",
         | 
| 28 | 
            +
                "app/controllers/abilities_controller.rb",
         | 
| 29 | 
            +
                "app/models/ability.rb",
         | 
| 30 | 
            +
                "app/models/ability_permission.rb",
         | 
| 31 | 
            +
                "app/models/authorization.rb",
         | 
| 32 | 
            +
                "app/models/authorization_extent.rb",
         | 
| 33 | 
            +
                "app/models/permission.rb",
         | 
| 34 | 
            +
                "app/models/permission_hash.rb",
         | 
| 35 | 
            +
                "app/views/abilities/_ability_permission_fields.html.haml",
         | 
| 36 | 
            +
                "app/views/abilities/_form.html.haml",
         | 
| 37 | 
            +
                "app/views/abilities/_permission_fields.html.haml",
         | 
| 38 | 
            +
                "app/views/abilities/edit.html.haml",
         | 
| 39 | 
            +
                "app/views/abilities/index.html.haml",
         | 
| 40 | 
            +
                "app/views/abilities/new.html.haml",
         | 
| 41 | 
            +
                "app/views/abilities/show.html.haml",
         | 
| 42 | 
            +
                "lib/config/vigilante_config.yml",
         | 
| 43 | 
            +
                "lib/db/migrate/20101028091755_create_permissions.rb",
         | 
| 44 | 
            +
                "lib/db/migrate/20101028091859_create_abilities.rb",
         | 
| 45 | 
            +
                "lib/db/migrate/20101028091927_create_ability_permissions.rb",
         | 
| 46 | 
            +
                "lib/db/migrate/20101028092014_create_authorizations.rb",
         | 
| 47 | 
            +
                "lib/db/migrate/20101124131334_add_extent_flag_to_ability.rb",
         | 
| 48 | 
            +
                "lib/db/migrate/20101129084538_add_authorization_extent.rb",
         | 
| 49 | 
            +
                "lib/db/migrate/20101129084620_remove_extent_from_authorization.rb",
         | 
| 50 | 
            +
                "lib/db/migrate/20130829160700_add_importance_to_abilities.rb",
         | 
| 51 | 
            +
                "lib/generators/vigilante/install/install_generator.rb",
         | 
| 52 | 
            +
                "lib/generators/vigilante/install/templates/create_abilities.rb",
         | 
| 53 | 
            +
                "lib/generators/vigilante/install/templates/create_ability_permissions.rb",
         | 
| 54 | 
            +
                "lib/generators/vigilante/install/templates/create_authorization_extents.rb",
         | 
| 55 | 
            +
                "lib/generators/vigilante/install/templates/create_authorizations.rb",
         | 
| 56 | 
            +
                "lib/generators/vigilante/install/templates/create_permissions.rb",
         | 
| 57 | 
            +
                "lib/generators/vigilante/install/templates/vigilante_config.yml",
         | 
| 58 | 
            +
                "lib/vigilante.rb",
         | 
| 59 | 
            +
                "lib/vigilante/active_record_extensions.rb",
         | 
| 60 | 
            +
                "lib/vigilante/authorization.rb",
         | 
| 61 | 
            +
                "lib/vigilante/controller_extension.rb",
         | 
| 62 | 
            +
                "lib/vigilante/finder_helper.rb",
         | 
| 63 | 
            +
                "lib/vigilante/watched_operator.rb",
         | 
| 64 | 
            +
                "spec/controllers/application_controller_spec.rb",
         | 
| 65 | 
            +
                "spec/controllers/blogs_controller_spec.rb",
         | 
| 66 | 
            +
                "spec/dummy/Rakefile",
         | 
| 67 | 
            +
                "spec/dummy/app/controllers/application_controller.rb",
         | 
| 68 | 
            +
                "spec/dummy/app/controllers/blogs_controller.rb",
         | 
| 69 | 
            +
                "spec/dummy/app/helpers/application_helper.rb",
         | 
| 70 | 
            +
                "spec/dummy/app/models/author.rb",
         | 
| 71 | 
            +
                "spec/dummy/app/models/blog.rb",
         | 
| 72 | 
            +
                "spec/dummy/app/models/post.rb",
         | 
| 73 | 
            +
                "spec/dummy/app/views/layouts/application.html.erb",
         | 
| 74 | 
            +
                "spec/dummy/config.ru",
         | 
| 75 | 
            +
                "spec/dummy/config/application.rb",
         | 
| 76 | 
            +
                "spec/dummy/config/boot.rb",
         | 
| 77 | 
            +
                "spec/dummy/config/database.yml",
         | 
| 78 | 
            +
                "spec/dummy/config/environment.rb",
         | 
| 79 | 
            +
                "spec/dummy/config/environments/development.rb",
         | 
| 80 | 
            +
                "spec/dummy/config/environments/production.rb",
         | 
| 81 | 
            +
                "spec/dummy/config/environments/test.rb",
         | 
| 82 | 
            +
                "spec/dummy/config/initializers/backtrace_silencers.rb",
         | 
| 83 | 
            +
                "spec/dummy/config/initializers/inflections.rb",
         | 
| 84 | 
            +
                "spec/dummy/config/initializers/mime_types.rb",
         | 
| 85 | 
            +
                "spec/dummy/config/initializers/secret_token.rb",
         | 
| 86 | 
            +
                "spec/dummy/config/initializers/session_store.rb",
         | 
| 87 | 
            +
                "spec/dummy/config/locales/en.yml",
         | 
| 88 | 
            +
                "spec/dummy/config/routes.rb",
         | 
| 89 | 
            +
                "spec/dummy/config/vigilante_config.yml",
         | 
| 90 | 
            +
                "spec/dummy/db/migrate/20101028091755_create_permissions.rb",
         | 
| 91 | 
            +
                "spec/dummy/db/migrate/20101028091859_create_abilities.rb",
         | 
| 92 | 
            +
                "spec/dummy/db/migrate/20101028091927_create_ability_permissions.rb",
         | 
| 93 | 
            +
                "spec/dummy/db/migrate/20101028092014_create_authorizations.rb",
         | 
| 94 | 
            +
                "spec/dummy/db/migrate/20101124131334_add_extent_flag_to_ability.rb",
         | 
| 95 | 
            +
                "spec/dummy/db/migrate/20101129084538_add_authorization_extent.rb",
         | 
| 96 | 
            +
                "spec/dummy/db/migrate/20101129084620_remove_extent_from_authorization.rb",
         | 
| 97 | 
            +
                "spec/dummy/db/migrate/20110118120344_create_blogs.rb",
         | 
| 98 | 
            +
                "spec/dummy/db/migrate/20110118120421_create_posts.rb",
         | 
| 99 | 
            +
                "spec/dummy/db/migrate/20110118120448_create_authors.rb",
         | 
| 100 | 
            +
                "spec/dummy/db/schema.rb",
         | 
| 101 | 
            +
                "spec/dummy/db/seeds.rb",
         | 
| 102 | 
            +
                "spec/dummy/db/seeds/initial_watchman_permissions.rb",
         | 
| 103 | 
            +
                "spec/dummy/public/404.html",
         | 
| 104 | 
            +
                "spec/dummy/public/422.html",
         | 
| 105 | 
            +
                "spec/dummy/public/500.html",
         | 
| 106 | 
            +
                "spec/dummy/public/favicon.ico",
         | 
| 107 | 
            +
                "spec/dummy/public/javascripts/application.js",
         | 
| 108 | 
            +
                "spec/dummy/public/javascripts/controls.js",
         | 
| 109 | 
            +
                "spec/dummy/public/javascripts/dragdrop.js",
         | 
| 110 | 
            +
                "spec/dummy/public/javascripts/effects.js",
         | 
| 111 | 
            +
                "spec/dummy/public/javascripts/prototype.js",
         | 
| 112 | 
            +
                "spec/dummy/public/javascripts/rails.js",
         | 
| 113 | 
            +
                "spec/dummy/public/stylesheets/.gitkeep",
         | 
| 114 | 
            +
                "spec/dummy/script/rails",
         | 
| 115 | 
            +
                "spec/models/ability_permission_spec.rb",
         | 
| 116 | 
            +
                "spec/models/ability_spec.rb",
         | 
| 117 | 
            +
                "spec/models/author_spec.rb",
         | 
| 118 | 
            +
                "spec/models/authorization_extent_spec.rb",
         | 
| 119 | 
            +
                "spec/models/authorization_spec.rb",
         | 
| 120 | 
            +
                "spec/models/permission_hash_spec.rb",
         | 
| 121 | 
            +
                "spec/models/permission_spec.rb",
         | 
| 122 | 
            +
                "spec/spec_helper.rb",
         | 
| 123 | 
            +
                "spec/vigilante_spec.rb",
         | 
| 124 | 
            +
                "vigilante.gemspec"
         | 
| 125 | 
            +
              ]
         | 
| 126 | 
            +
              s.homepage = "http://github.com/vigilante"
         | 
| 127 | 
            +
              s.require_paths = ["lib"]
         | 
| 128 | 
            +
              s.rubygems_version = "1.8.25"
         | 
| 129 | 
            +
              s.summary = "Context-based, db-backed authorisation for your rails3 apps"
         | 
| 130 | 
            +
             | 
| 131 | 
            +
              if s.respond_to? :specification_version then
         | 
| 132 | 
            +
                s.specification_version = 3
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         | 
| 135 | 
            +
                  s.add_runtime_dependency(%q<rails>, [">= 3.0.3"])
         | 
| 136 | 
            +
                  s.add_development_dependency(%q<jeweler>, [">= 0"])
         | 
| 137 | 
            +
                  s.add_development_dependency(%q<rspec-rails>, [">= 2.4.0"])
         | 
| 138 | 
            +
                  s.add_development_dependency(%q<rails>, [">= 3.0.0"])
         | 
| 139 | 
            +
                else
         | 
| 140 | 
            +
                  s.add_dependency(%q<rails>, [">= 3.0.3"])
         | 
| 141 | 
            +
                  s.add_dependency(%q<jeweler>, [">= 0"])
         | 
| 142 | 
            +
                  s.add_dependency(%q<rspec-rails>, [">= 2.4.0"])
         | 
| 143 | 
            +
                  s.add_dependency(%q<rails>, [">= 3.0.0"])
         | 
| 144 | 
            +
                end
         | 
| 145 | 
            +
              else
         | 
| 146 | 
            +
                s.add_dependency(%q<rails>, [">= 3.0.3"])
         | 
| 147 | 
            +
                s.add_dependency(%q<jeweler>, [">= 0"])
         | 
| 148 | 
            +
                s.add_dependency(%q<rspec-rails>, [">= 2.4.0"])
         | 
| 149 | 
            +
                s.add_dependency(%q<rails>, [">= 3.0.0"])
         | 
| 150 | 
            +
              end
         | 
| 151 | 
            +
            end
         | 
| 152 | 
            +
             | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: vigilante
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,23 +9,27 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 13 | 
            -
            default_executable: 
         | 
| 12 | 
            +
            date: 2013-09-16 00:00:00.000000000 Z
         | 
| 14 13 | 
             
            dependencies:
         | 
| 15 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 15 | 
             
              name: rails
         | 
| 17 | 
            -
              requirement:  | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 18 17 | 
             
                none: false
         | 
| 19 18 | 
             
                requirements:
         | 
| 20 | 
            -
                - -  | 
| 19 | 
            +
                - - ! '>='
         | 
| 21 20 | 
             
                  - !ruby/object:Gem::Version
         | 
| 22 21 | 
             
                    version: 3.0.3
         | 
| 23 22 | 
             
              type: :runtime
         | 
| 24 23 | 
             
              prerelease: false
         | 
| 25 | 
            -
              version_requirements:  | 
| 24 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            +
                none: false
         | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ! '>='
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: 3.0.3
         | 
| 26 30 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 27 31 | 
             
              name: jeweler
         | 
| 28 | 
            -
              requirement:  | 
| 32 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 29 33 | 
             
                none: false
         | 
| 30 34 | 
             
                requirements:
         | 
| 31 35 | 
             
                - - ! '>='
         | 
| @@ -33,10 +37,15 @@ dependencies: | |
| 33 37 | 
             
                    version: '0'
         | 
| 34 38 | 
             
              type: :development
         | 
| 35 39 | 
             
              prerelease: false
         | 
| 36 | 
            -
              version_requirements:  | 
| 40 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            +
                none: false
         | 
| 42 | 
            +
                requirements:
         | 
| 43 | 
            +
                - - ! '>='
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                    version: '0'
         | 
| 37 46 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 38 47 | 
             
              name: rspec-rails
         | 
| 39 | 
            -
              requirement:  | 
| 48 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 40 49 | 
             
                none: false
         | 
| 41 50 | 
             
                requirements:
         | 
| 42 51 | 
             
                - - ! '>='
         | 
| @@ -44,10 +53,15 @@ dependencies: | |
| 44 53 | 
             
                    version: 2.4.0
         | 
| 45 54 | 
             
              type: :development
         | 
| 46 55 | 
             
              prerelease: false
         | 
| 47 | 
            -
              version_requirements:  | 
| 56 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            +
                none: false
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ! '>='
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: 2.4.0
         | 
| 48 62 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 49 63 | 
             
              name: rails
         | 
| 50 | 
            -
              requirement:  | 
| 64 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 51 65 | 
             
                none: false
         | 
| 52 66 | 
             
                requirements:
         | 
| 53 67 | 
             
                - - ! '>='
         | 
| @@ -55,7 +69,12 @@ dependencies: | |
| 55 69 | 
             
                    version: 3.0.0
         | 
| 56 70 | 
             
              type: :development
         | 
| 57 71 | 
             
              prerelease: false
         | 
| 58 | 
            -
              version_requirements:  | 
| 72 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            +
                none: false
         | 
| 74 | 
            +
                requirements:
         | 
| 75 | 
            +
                - - ! '>='
         | 
| 76 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            +
                    version: 3.0.0
         | 
| 59 78 | 
             
            description: Vigilante is a db-backed authorisation, completely configurable and dynamic;
         | 
| 60 79 | 
             
              where permissions can be limited to extents.
         | 
| 61 80 | 
             
            email: nathan@dixis.com
         | 
| @@ -80,7 +99,12 @@ files: | |
| 80 99 | 
             
            - app/models/authorization_extent.rb
         | 
| 81 100 | 
             
            - app/models/permission.rb
         | 
| 82 101 | 
             
            - app/models/permission_hash.rb
         | 
| 102 | 
            +
            - app/views/abilities/_ability_permission_fields.html.haml
         | 
| 103 | 
            +
            - app/views/abilities/_form.html.haml
         | 
| 104 | 
            +
            - app/views/abilities/_permission_fields.html.haml
         | 
| 105 | 
            +
            - app/views/abilities/edit.html.haml
         | 
| 83 106 | 
             
            - app/views/abilities/index.html.haml
         | 
| 107 | 
            +
            - app/views/abilities/new.html.haml
         | 
| 84 108 | 
             
            - app/views/abilities/show.html.haml
         | 
| 85 109 | 
             
            - lib/config/vigilante_config.yml
         | 
| 86 110 | 
             
            - lib/db/migrate/20101028091755_create_permissions.rb
         | 
| @@ -90,13 +114,14 @@ files: | |
| 90 114 | 
             
            - lib/db/migrate/20101124131334_add_extent_flag_to_ability.rb
         | 
| 91 115 | 
             
            - lib/db/migrate/20101129084538_add_authorization_extent.rb
         | 
| 92 116 | 
             
            - lib/db/migrate/20101129084620_remove_extent_from_authorization.rb
         | 
| 117 | 
            +
            - lib/db/migrate/20130829160700_add_importance_to_abilities.rb
         | 
| 93 118 | 
             
            - lib/generators/vigilante/install/install_generator.rb
         | 
| 94 119 | 
             
            - lib/generators/vigilante/install/templates/create_abilities.rb
         | 
| 95 120 | 
             
            - lib/generators/vigilante/install/templates/create_ability_permissions.rb
         | 
| 96 121 | 
             
            - lib/generators/vigilante/install/templates/create_authorization_extents.rb
         | 
| 97 122 | 
             
            - lib/generators/vigilante/install/templates/create_authorizations.rb
         | 
| 98 123 | 
             
            - lib/generators/vigilante/install/templates/create_permissions.rb
         | 
| 99 | 
            -
            - lib/generators/vigilante/install/templates/ | 
| 124 | 
            +
            - lib/generators/vigilante/install/templates/vigilante_config.yml
         | 
| 100 125 | 
             
            - lib/vigilante.rb
         | 
| 101 126 | 
             
            - lib/vigilante/active_record_extensions.rb
         | 
| 102 127 | 
             
            - lib/vigilante/authorization.rb
         | 
| @@ -163,7 +188,7 @@ files: | |
| 163 188 | 
             
            - spec/models/permission_spec.rb
         | 
| 164 189 | 
             
            - spec/spec_helper.rb
         | 
| 165 190 | 
             
            - spec/vigilante_spec.rb
         | 
| 166 | 
            -
             | 
| 191 | 
            +
            - vigilante.gemspec
         | 
| 167 192 | 
             
            homepage: http://github.com/vigilante
         | 
| 168 193 | 
             
            licenses: []
         | 
| 169 194 | 
             
            post_install_message: 
         | 
| @@ -178,7 +203,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 178 203 | 
             
                  version: '0'
         | 
| 179 204 | 
             
                  segments:
         | 
| 180 205 | 
             
                  - 0
         | 
| 181 | 
            -
                  hash: - | 
| 206 | 
            +
                  hash: -1531748600046147713
         | 
| 182 207 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 183 208 | 
             
              none: false
         | 
| 184 209 | 
             
              requirements:
         | 
| @@ -187,50 +212,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 187 212 | 
             
                  version: '0'
         | 
| 188 213 | 
             
            requirements: []
         | 
| 189 214 | 
             
            rubyforge_project: 
         | 
| 190 | 
            -
            rubygems_version: 1. | 
| 215 | 
            +
            rubygems_version: 1.8.25
         | 
| 191 216 | 
             
            signing_key: 
         | 
| 192 217 | 
             
            specification_version: 3
         | 
| 193 218 | 
             
            summary: Context-based, db-backed authorisation for your rails3 apps
         | 
| 194 | 
            -
            test_files:
         | 
| 195 | 
            -
            - spec/controllers/application_controller_spec.rb
         | 
| 196 | 
            -
            - spec/controllers/blogs_controller_spec.rb
         | 
| 197 | 
            -
            - spec/dummy/app/controllers/application_controller.rb
         | 
| 198 | 
            -
            - spec/dummy/app/controllers/blogs_controller.rb
         | 
| 199 | 
            -
            - spec/dummy/app/helpers/application_helper.rb
         | 
| 200 | 
            -
            - spec/dummy/app/models/author.rb
         | 
| 201 | 
            -
            - spec/dummy/app/models/blog.rb
         | 
| 202 | 
            -
            - spec/dummy/app/models/post.rb
         | 
| 203 | 
            -
            - spec/dummy/config/application.rb
         | 
| 204 | 
            -
            - spec/dummy/config/boot.rb
         | 
| 205 | 
            -
            - spec/dummy/config/environment.rb
         | 
| 206 | 
            -
            - spec/dummy/config/environments/development.rb
         | 
| 207 | 
            -
            - spec/dummy/config/environments/production.rb
         | 
| 208 | 
            -
            - spec/dummy/config/environments/test.rb
         | 
| 209 | 
            -
            - spec/dummy/config/initializers/backtrace_silencers.rb
         | 
| 210 | 
            -
            - spec/dummy/config/initializers/inflections.rb
         | 
| 211 | 
            -
            - spec/dummy/config/initializers/mime_types.rb
         | 
| 212 | 
            -
            - spec/dummy/config/initializers/secret_token.rb
         | 
| 213 | 
            -
            - spec/dummy/config/initializers/session_store.rb
         | 
| 214 | 
            -
            - spec/dummy/config/routes.rb
         | 
| 215 | 
            -
            - spec/dummy/db/migrate/20101028091755_create_permissions.rb
         | 
| 216 | 
            -
            - spec/dummy/db/migrate/20101028091859_create_abilities.rb
         | 
| 217 | 
            -
            - spec/dummy/db/migrate/20101028091927_create_ability_permissions.rb
         | 
| 218 | 
            -
            - spec/dummy/db/migrate/20101028092014_create_authorizations.rb
         | 
| 219 | 
            -
            - spec/dummy/db/migrate/20101124131334_add_extent_flag_to_ability.rb
         | 
| 220 | 
            -
            - spec/dummy/db/migrate/20101129084538_add_authorization_extent.rb
         | 
| 221 | 
            -
            - spec/dummy/db/migrate/20101129084620_remove_extent_from_authorization.rb
         | 
| 222 | 
            -
            - spec/dummy/db/migrate/20110118120344_create_blogs.rb
         | 
| 223 | 
            -
            - spec/dummy/db/migrate/20110118120421_create_posts.rb
         | 
| 224 | 
            -
            - spec/dummy/db/migrate/20110118120448_create_authors.rb
         | 
| 225 | 
            -
            - spec/dummy/db/schema.rb
         | 
| 226 | 
            -
            - spec/dummy/db/seeds.rb
         | 
| 227 | 
            -
            - spec/dummy/db/seeds/initial_watchman_permissions.rb
         | 
| 228 | 
            -
            - spec/models/ability_permission_spec.rb
         | 
| 229 | 
            -
            - spec/models/ability_spec.rb
         | 
| 230 | 
            -
            - spec/models/author_spec.rb
         | 
| 231 | 
            -
            - spec/models/authorization_extent_spec.rb
         | 
| 232 | 
            -
            - spec/models/authorization_spec.rb
         | 
| 233 | 
            -
            - spec/models/permission_hash_spec.rb
         | 
| 234 | 
            -
            - spec/models/permission_spec.rb
         | 
| 235 | 
            -
            - spec/spec_helper.rb
         | 
| 236 | 
            -
            - spec/vigilante_spec.rb
         | 
| 219 | 
            +
            test_files: []
         | 
    
        /data/lib/generators/vigilante/install/templates/{watchman_config.yml → vigilante_config.yml}
    RENAMED
    
    | 
            File without changes
         |