Sha256: 7932b0283da0205af631c5c50740c4c2a15ded4ff441bdcbf1dbc839e33a5605

Contents?: true

Size: 1015 Bytes

Versions: 48

Compression:

Stored size: 1015 Bytes

Contents

module Spider; module Master
    
    class Admin < Spider::Auth::LoginUser
        element :name, String
        element :email, String
        element :cell, String
        element :global, Bool, :default => false
        
        def can_manage_customer?(customer)
            customer = customer.id if customer.is_a?(Spider::Model::BaseModel)
            self.customers.map{ |c| c.customer.id }.include?(customer)
        end
        
        def can_manage_customers?
            self.global?
        end
        
        with_mapper do
           
           def before_save(obj, mode)
               if obj.global? && ( mode == :insert || obj.element_modified?(:global) )
                   curr = obj.customers.map{ |c| c.id }
                   missing = Customer.where{ |c| c.id .not curr }
                   missing.each do |c|
                       obj.customers << c
                   end
               end
               super
           end
            
        end
        
    end
    
end; end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
spiderfw-1.0.1 apps/master/models/admin.rb
spiderfw-1.0.0 apps/master/models/admin.rb
spiderfw-0.6.39 apps/master/models/admin.rb
spiderfw-0.6.38 apps/master/models/admin.rb
spiderfw-0.6.37 apps/master/models/admin.rb
spiderfw-0.6.35 apps/master/models/admin.rb
spiderfw-0.6.34 apps/master/models/admin.rb
spiderfw-0.6.33 apps/master/models/admin.rb
spiderfw-0.6.32 apps/master/models/admin.rb
spiderfw-0.6.31 apps/master/models/admin.rb
spiderfw-0.6.30 apps/master/models/admin.rb
spiderfw-0.6.29 apps/master/models/admin.rb
spiderfw-0.6.28 apps/master/models/admin.rb
spiderfw-0.6.27 apps/master/models/admin.rb
spiderfw-0.6.26 apps/master/models/admin.rb
spiderfw-0.6.26.pre1 apps/master/models/admin.rb
spiderfw-0.6.25 apps/master/models/admin.rb
spiderfw-0.6.24 apps/master/models/admin.rb
spiderfw-0.6.23 apps/master/models/admin.rb
spiderfw-0.6.22 apps/master/models/admin.rb