24 lines
		
	
	
		
			796 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			796 B
		
	
	
	
		
			Ruby
		
	
	
	
class ObjectAuth  < PrototypeAuth
 | 
						|
  include OrbitCoreLib::ObjectTokenUnility
 | 
						|
  validates_uniqueness_of :title ,:scope => [:obj_authable_type,:obj_authable_id]  #{ |c| }
 | 
						|
  belongs_to :obj_authable, polymorphic: true
 | 
						|
  after_save :check_user_has_app_auth
 | 
						|
  # > - Something.find_with_auth(query)
 | 
						|
  # > - or Something.find(query).auth
 | 
						|
  def auth_obj
 | 
						|
    class_obj = eval(self.obj_authable_type)
 | 
						|
    class_obj.find self.obj_authable_id
 | 
						|
  end
 | 
						|
 | 
						|
  def check_user_has_app_auth
 | 
						|
    sub_managing_users = auth_obj.app_auth.sub_managing_users rescue []
 | 
						|
    app_auth =  auth_obj.app_auth
 | 
						|
    self.auth_users.each do |auth_user|
 | 
						|
      if !sub_managing_users.include? auth_user && !auth_user.admin?
 | 
						|
         app_auth.assign_sub_manager(auth_user,User.current)
 | 
						|
         app_auth.save!
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
end |