2010-11-26 31 views
0

Fondamentalement, Dans toute application pour l'interface utilisateur, nous avons le contrôle d'accès pour divers éléments.Quelle est la meilleure façon de mettre en œuvre un contrôle d'accès à granularité fine dans la vue struts2?

Say, j'ai un bouton pour être visible à PM

<logic equal=pm> 
TheButton 
</logic equal> 

<logic NotEqual=pm> 
TheButton=disabled 
</logic NotEqual> 

dire Maintenant, il y a une condition supplémentaire dire développeur a accès différent. Comme il n'y a pas et dans les balises ... Nous faisons comme

<logic equal=pm> 
TheButton 
</logic equal> 

<logic NotEqual=pm> 
TheButton=disabled 
</logic NotEqual> 

<logic equal=developer> 
TheButton 
</logic equal> 

<logic NotEqual=developer> 
TheButton=disabled 
</logic NotEqual> 

Voici donc le code ne cesse d'augmenter et le contrôle d'accès est tout fragmenté.

Dans struts2, pour chaque méthode dans la classe Action, je peux créer une annotation personnalisée et vérifier le contrôle d'accès. Comme @Role=pm,developer

Comment le faire en jsp? tel que je peux écrire.

<button name=Thebutton access="pm,developer" > 

Ou quelque chose comme ça.

Répondre

1

Vous pourriez écrire une méthode dans votre contrôleur en disant "getElements()" qui ne retournerait que les éléments autorisés. N'hésitez pas à écrire des actions plus simples renvoyant des éléments individuels ou des chaînes vides pour que votre main.jsp reste propre.

+0

Pouvez-vous élaborer un peu dans les détails. Fondamentalement, disons que je veux rendre un bouton visible pour l'accès = x –

+0

Je pense que vous voulez rendre un bouton désactivé aussi. Toutes mes excuses pour ma réponse précédente. Dans ce cas, vous pouvez simplement créer un fichier button.tag dans lequel vous pouvez ajouter cette logique iffy. Ajoutez une action dans votre contrôleur isEnabled (bouton) et cette méthode vérifie toutes vos autorisations et donne une valeur booléenne basée sur le bouton activé ou désactivé. Est ce que ça aide? –