Class: Permission
  
  
  
  
    - Inherits:
 
    - 
      Sequel::Model
      
        
          - Object
 
          
            - Sequel::Model
 
          
            - Permission
 
          
        
        show all
      
       
    
  
  
    
  
    
      - Includes:
 
      - ASModel
 
      
    
  
  
  
    - Defined in:
 
    - backend/app/model/permission.rb
 
  
  
    
      Class Method Summary
      (collapse)
    
    
  
  
  
  
  
  
  
  
  
  Methods included from ASModel
  all_models, included, update_publish_flag, update_suppressed_flag
  
  
  
  
  
  
  
  
  Methods included from JSONModel
  JSONModel, #JSONModel, add_error_handler, all, allow_unmapped_enum_value, backend_url, client_mode?, custom_validations, destroy_model, enum_default_value, enum_values, handle_error, init, load_schema, #models, models, parse_jsonmodel_ref, parse_reference, repository, repository_for, schema_src, set_repository, strict_mode, strict_mode?, with_repository
  
  
    Class Method Details
    
      
  
  
    + (Object) define(code, description, opts = {}) 
  
  
  
  
    
      
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 
     | 
    
      # File 'backend/app/model/permission.rb', line 20
def self.define(code, description, opts = {})
  if opts[:implied_by]
    
    
    @derived_permissions << opts.merge(:permission_code => code,
                                       :description => description)
    return
  end
  opts[:level] ||= "repository"
  opts[:system] = (opts[:system] ? 1 : 0)
  permission = (Permission[:permission_code => code] or
                Permission.create(opts.merge(:permission_code => code,
                                             :description => description)))
  
  admins = Group.any_repo[:group_code => Group.ADMIN_GROUP_CODE]
  admins.grant(permission.permission_code)
end
     | 
  
 
    
      
  
  
    + (Boolean) derived?(code) 
  
  
  
  
    
      
9
10
11 
     | 
    
      # File 'backend/app/model/permission.rb', line 9
def self.derived?(code)
  @derived_permissions.any?{|p| p[:permission_code].casecmp(code) == 0}
end
     | 
  
 
    
      
  
  
    + (Object) derived_permissions_for(code) 
  
  
  
  
    
      
14
15
16
17 
     | 
    
      # File 'backend/app/model/permission.rb', line 14
def self.derived_permissions_for(code)
  @derived_permissions.select {|p| p[:implied_by].casecmp(code) == 0}.
                       map {|p| p[:permission_code]}
end
     |