2

J'utilise un système d'authentification de signature unique devant mon application rails, donc vous ne pouvez pas accéder à l'application jusqu'à ce que vous vous soyez authentifié via notre système d'authentification d'entreprise.Rails: Authentification par session unique basée sur l'authentification

Une fois authentifié, je veux configurer une autorisation basée sur les rôles, mais je crois que j'ai encore besoin de mettre en place une sorte de modèle d'utilisateur pour que cela fonctionne.

Je suis désireux d'utiliser cancan pour l'autorisation, et peut-être des rôles faciles pour les rôles. mais comment puis-je enregistrer l'utilisateur actuellement connecté? J'ai simplement accédé aux variables de session jusqu'à maintenant.

Je ne peux pas utiliser les variables de session pour les rôles car je n'ai aucun contrôle sur notre système de connexion unique.

J'ai cherché un peu comment simplement, mais je n'ai pas réussi à en trouver un.

+0

J'ai gardé la recherche d'une solution et je ne peux toujours pas trouver ce que je cherche. Je suppose que je dois créer un deuxième niveau d'authentification? sans mot de passe qui acceptera le login tant que le nom d'utilisateur est dans la base de données? – Rumpleteaser

+0

Ce n'est pas vraiment ce que je veux bien. Ensuite, nous devrons ajouter l'utilisateur chaque fois qu'une nouvelle personne vient. – Rumpleteaser

Répondre

0

J'ai créé un contrôleur pour Admins et saisi tous les utilisateurs admin dans ce et je suis tout simplement aller à mettre en œuvre l'autorisation très basique comme dans ryan bates début railcast: http://railscasts.com/episodes/20-restricting-access

Je limiterai l'accès sur chaque contrôleur et dans le vues. Je me sens un peu sale, mais ça marche.

Dans la fonction de contrôle admin Je vérifie pour voir si les informations d'identification utilisateur sessions sont dans le tableau:

helper_method :admin? 

def admin? 
    admin = Admin.find_all_by_username(request.env["SPEP_ATTR_uid"]) 
    if admin.empty? 
    false 
    else 
    true 
    end 
end 

def authorize 
    unless admin? 
    flash[:error] = "unauthorized access" 
    redirect_to home_url 
    false 
    end 
end