comparison src/nabble/view/naml/rest_group_control.naml @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:7ecd1a4ef557
1 <!--
2 Add/Remove users to/from groups.
3 http://<site-domain>/template/NamlServlet.jtp?macro=rest_group_control&owner=owner@example.com&password=123456&user=user@example.com&action=add&group=Members
4 http://<site-domain>/template/NamlServlet.jtp?macro=rest_group_control&owner=owner@example.com&password=123456&user=user@example.com&action=remove&group=Members
5 Sample URLs
6 -->
7 <macro name="rest_group_control" requires="servlet">
8 <n.check_not_null value="[n.rest_owner_email/]" error_msg="Invalid owner email."/>
9 <n.check_not_null value="[n.rest_owner_password_hash/]" error_msg="Invalid password hash."/>
10 <n.check_not_null value="[n.rest_user_email/]" error_msg="Invalid user email."/>
11 <n.check_not_null value="[n.rest_action/]" error_msg="Missing action."/>
12 <n.check_not_null value="[n.rest_group/]" error_msg="Missing group name."/>
13
14 <n.catch_exception. id="save-block">
15 <n.if.check_registered_user email="[n.rest_owner_email/]" password_hash="[n.rest_owner_password_hash/]">
16 <then>
17 <n.if.regex_matches text="[n.rest_action/]" pattern="add|remove">
18 <then>
19 <n.get_or_create_user. email="[n.rest_owner_email/]">
20 <n.as_user_page.>
21 <n.edit_page_user.>
22 <n.if.equal value1="[n.rest_action/]" value2="add">
23 <then><n.add_to_group.rest_group/></then>
24 <else><n.remove_from_group.rest_group/></else>
25 </n.if.equal>
26 </n.edit_page_user.>
27 Success.
28 </n.as_user_page.>
29 </n.get_or_create_user.>
30 </then>
31 <else>
32 Actions should be "add" or "remove".
33 </else>
34 </n.if.regex_matches>
35 </then>
36 <else>Invalid owner email and password.</else>
37 </n.if.check_registered_user>
38 </n.catch_exception.>
39 </macro>
40
41 <macro name="check_not_null" parameters="value,error_msg">
42 <n.if.is_null.value>
43 <then>
44 <n.error_msg/>
45 <n.exit/>
46 </then>
47 </n.if.is_null.value>
48 </macro>
49
50 <macro name="rest_owner_email">
51 <n.get_parameter name="owner"/>
52 </macro>
53
54 <macro name="rest_owner_password_hash">
55 <n.get_parameter name="password"/>
56 </macro>
57
58 <macro name="rest_action">
59 <n.get_parameter name="action"/>
60 </macro>
61
62 <macro name="rest_group">
63 <n.get_parameter name="group"/>
64 </macro>
65
66 <macro name="rest_user_email">
67 <n.get_parameter name="user"/>
68 </macro>