module Decidim::HasPrivateUsers
A concern with the features needed when you want a model to be able to create private users
Public Class Methods
private_spaces()
click to toggle source
# File lib/decidim/has_private_users.rb, line 47 def self.private_spaces where(private_space: true) end
public_spaces()
click to toggle source
# File lib/decidim/has_private_users.rb, line 43 def self.public_spaces where(private_space: false).published end
visible_for(user)
click to toggle source
# File lib/decidim/has_private_users.rb, line 21 def self.visible_for(user) if user return all if user.admin? where( id: public_spaces + private_spaces .joins(:participatory_space_private_users) .where(decidim_participatory_space_private_users: { decidim_user_id: user.id }) ) else public_spaces end end
Public Instance Methods
can_participate?(user)
click to toggle source
# File lib/decidim/has_private_users.rb, line 36 def can_participate?(user) return true unless private_space? return false unless user participatory_space_private_users.exists?(decidim_user_id: user.id) end