Una página solo para un rol
Traducción automática
Esta página se tradujo automáticamente del inglés y todavía no la revisó un hablante nativo; las correcciones son bienvenidas en GitHub. Si algo no coincide, vale el original en inglés.
Tarea: mostrar una página solo a los administradores.
yaml
# Recipe: a page only the admins see; everyone else gets 403, and a visitor
# who is not signed in is sent to sign in.
paths:
components: ./components1
2
3
4
2
3
4
require_auth="true" pide una sesión iniciada; require_role, uno de los roles de la lista en session.userRole (varios se separan con comas, require_role="admin,editor"):
xml
<q:component name="Reports" require_auth="true" require_role="admin">
<h1>Reports</h1>
<p>Only admins see this, {session.userName}.</p>
</q:component>1
2
3
4
2
3
4
Sin sesión, la respuesta redirige a /login (se cambia con security.login_url):
xml
<q:component name="Login">
<h1>Sign in</h1>
</q:component>1
2
3
2
3
test:as inicia la sesión de la prueba con un rol, sin contraseña:
xml
<q:test name="an admin sees the page" page="/reports">
<test:as user="ana" role="admin" />
<test:visit />
<test:expect status="200" text="Only admins see this, ana." />
</q:test>
<q:test name="a member is refused with 403" page="/reports">
<test:as user="bruno" role="member" />
<test:visit />
<test:expect status="403" />
</q:test>
<q:test name="a visitor who is not signed in is sent to sign in" page="/reports">
<test:visit />
<test:expect status="302" redirect="/login" />
</q:test>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
text
tests/reports.test.q
PASS an admin sees the page
PASS a member is refused with 403
PASS a visitor who is not signed in is sent to sign in
3 passed, 0 failed1
2
3
4
5
2
3
4
5