Me gustaría establecer las propiedades del alcance $ en un objeto de acceso de usuario de algún tipo para alternar ellas cada vez que coloque el usuario.
Suponiendo que el usuario se carga cuando el controlador es que podría ser algo así:
app.controller('SecuredForm', function($scope) {
//get your user from where ever.
var user = getSomeUser();
// set your user permissions
// here's some contrived example.
$scope.permissions = {
showAdmin: user.isRegistered && user.isAdmin,
showBasic: user.isRegistered,
showHelp: !user.isBanned
}
});
en el código HTML que tendría que utilizar esos elementos para establecer el alcance mostrar u ocultar sus áreas:
<div ng-show="permissions.showAdmin">
<h3>Admin Area</h3>
<!-- admin stuff here -->
</div>
<div ng-show="permissions.showBasic">
<h3>Basic Info</h3>
<!-- admin stuff here -->
</div>
<div ng-show="permissions.showHelp">
<h3>Help</h3>
<!-- help stuff here -->
</div>
Una cosa a tener en cuenta es que ng-show y ng-hide simplemente no muestran el HTML ... el html todavía está en el cliente. Por lo tanto, cuando realice llamadas al servidor que requieren permisos para modificar algo, debe verificarlos en el servidor. No puede suponer que el usuario tiene permiso para hacer algo simplemente porque el formulario estaba visible. (Probablemente ya sepas esto, solo quiero ser exhaustivo).
¿Cómo se determina qué usuario accede a la página? He proporcionado una respuesta general y la actualizaré si es necesario. –