app/models/media_resource_modules/permissions.rb

Summary

Maintainability
A
0 mins
Test Coverage
# -*- encoding : utf-8 -*-

module MediaResourceModules
  module Permissions

    ALLOWED_PERMISSIONS= [:view,:download]

    def self.included(base)

      base.class_eval do

        extend(ClassMethods) # look way below

        has_many :userpermissions, :dependent => :destroy         
        has_many :grouppermissions, :dependent => :destroy
        has_many :applicationpermissions, dependent: :destroy, \
          class_name: 'API::Applicationpermission'
      end
    end


    def is_public?
      view?
    end

    def is_private?(user)
      (user_id == user.id and
        not is_public? and
        not userpermissions.where(:view => true).where(["user_id != ?", user]).exists? and
        not grouppermissions.where(:view => true).exists?)
    end

    def is_shared?(user)
      not is_public? and not is_private?(user)
    end


    #############################################
  
    module ClassMethods 
    end

  end
end