fondamentalement je veux voir si l'utilisateur a ajouté blacklist_users ou whitelist_users et ensuite les autoriser ou les interdire selon cela, mais j'ai du mal à trouver le code correctement : (us_id est essentiellement user_id)Ruby on Rails en utilisant liste blanche et listes noires pour permettre à l'utilisateur actuel de voir page
relation: modèle Blacklist_user:
belongs_to :b_page
modèle Whitelist_user:
belongs_to :b_page
modèle B_page:
has_many :whitelist_user
has_many :blacklist_user
contrôleur
:
if !(@b_page.whitelist_user.empty?)
@whitelist_users = @b_page.whitelist_user.map(&:us_id)
@whitelist_users.push(@b_page.user.id)
else
@whitelist_users = []
end
if !(@b_page.blacklist_user.empty?)
@blacklist_users = @b_page.blacklist_user.map(&:us_id)
else
@b_page.blacklist_user = []
@blacklist_users = @b_page.blacklist_user.map(&:us_id)
end
vues:
<% if ((!(@whitelist_users.empty?)) && @whitelist_users.include?(current_user.id)) || ((!(@blacklist_users.empty?)) && @blacklist_users.exclude?(current_user.id)) %>
<!-- show bpage -->
<% elsif ! ((!((@whitelist_users.empty?)) && @whitelist_users.include?(current_user.id)) || ((!(@blacklist_users.empty?)) && @blacklist_users.exclude?(current_user.id)))%>
<!-- user not allowed-->
<% else %>
<!-- show bpage-->
<% end %>
mais quand je signe en tant que @ b_page.user je reçois le (BTW j'utilise concevoir) existe-t-il une meilleure façon de mettre en œuvre ceci, au lieu de le compliquer encore plus?
qui nécessite que les utilisateurs blacklist_users et whitelist_users soient liés au modèle des utilisateurs, mais ils sont uniquement liés au modèle b_page –
plus ce que je veux, c'est utiliser la liste blanche et la liste noire ensemble –