77 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| 
								 | 
							
								class AppAuth
							 | 
						||
| 
								 | 
							
								  include Mongoid::Document
							 | 
						||
| 
								 | 
							
								  include Mongoid::Timestamps
							 | 
						||
| 
								 | 
							
								 # after_save :update_block_list,:update_privilage_list
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  field :title
							 | 
						||
| 
								 | 
							
								  field :token
							 | 
						||
| 
								 | 
							
								  field :all ,type: Boolean,default: false
							 | 
						||
| 
								 | 
							
								  belongs_to :module_app
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  belongs_to :users
							 | 
						||
| 
								 | 
							
								  # belongs_to :users,as: :block_users, :inverse_of => :privilege_apps
							 | 
						||
| 
								 | 
							
								  has_and_belongs_to_many :blocked_users,  :inverse_of => nil, :class_name => "User"
							 | 
						||
| 
								 | 
							
								  has_and_belongs_to_many :privilege_users,  :inverse_of => nil, :class_name => "User"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  has_and_belongs_to_many :roles
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def add_user_to_black_list user
							 | 
						||
| 
								 | 
							
								    unless self.blocked_users.include?(user)
							 | 
						||
| 
								 | 
							
								      self.blocked_users << user
							 | 
						||
| 
								 | 
							
								      self.save!
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      false #should put error message for user existed in list already
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def remove_user_from_black_list user
							 | 
						||
| 
								 | 
							
								    if self.blocked_users.include? user
							 | 
						||
| 
								 | 
							
								      self.blocked_users.delete user
							 | 
						||
| 
								 | 
							
								      self.save!
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      false #should put error message for user not existed in list
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def add_user_to_privilege_list user
							 | 
						||
| 
								 | 
							
								    unless self.privilege_users.include? user
							 | 
						||
| 
								 | 
							
								      self.privilege_users << user
							 | 
						||
| 
								 | 
							
								      self.save!
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      false #should put error message for user existed in list already
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def remove_user_from_privilege_list user
							 | 
						||
| 
								 | 
							
								    if self.privilege_users.include? user
							 | 
						||
| 
								 | 
							
								      self.privilege_users.delete user
							 | 
						||
| 
								 | 
							
								      self.save!
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      false #should put error message for user not existed in list
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def auth_users
							 | 
						||
| 
								 | 
							
								    if self.all?
							 | 
						||
| 
								 | 
							
								      User.all.entries
							 | 
						||
| 
								 | 
							
								    else
							 | 
						||
| 
								 | 
							
								      ary= self.roles.collect do |role|
							 | 
						||
| 
								 | 
							
								        role.users
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      ary << self.privilege_users
							 | 
						||
| 
								 | 
							
								      ary.flatten!  
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  def auth_users_after_block_list
							 | 
						||
| 
								 | 
							
								    auth_users - self.blocked_users
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								 # protected
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 |