History: Terms_of_Use_Demo
Source of version: 20 (current)
Copy to clipboard
{maketoc} The purpose of this profile is to make the users accept a terms of use on registration. Also existing users will be asked to fill in the terms of use on login if they are already registered prior to the terms of use implementation !!How to use this demo First on a FRESH EMPTY tiki, create a pre-existing user, and then apply the demo. And then look at how the registration happens, as well as what happens when the pre-existing user logs in. !!The User Tracker First you need a user tracker. You could already have a user tracker. If so, you don't need to create one. {CODE(caption=>YAML)} objects: - type: tracker ref: user_tracker data: name: User Tracker description: restrict_end: 0 restrict_start: 0 allow: - one_item_per_user - creator_modification show: - list_creation_date - status_admin_only - type: tracker_field ref: user_tracker_userselector data: name: User permname: userselector tracker: $profileobject:user_tracker$ options: autoassign: 1 type: user order: 0 flags: - searchable - public - mandatory {CODE} !!Pretty tracker registration Then you need to setup pretty tracker registration {CODE(caption=>YAML)} objects: - type: wiki_page ref: registration_tpl data: name: registration_tpl content: wikicontent:registration_tpl_include description: lang: {CODE} !!Features & settings {CODE(caption=>YAML)} preferences: feature_trackers: y allowRegister: true userTracker: true user_register_prettytracker: true user_register_prettytracker_tpl: registration_tpl wikiplugin_iframe: y wikiplugin_tracker: y wikiplugin_trackeritemfield: y wikiplugin_redirect: y {CODE} !!The Checkbox field You need to add the checkbox field to your user tracker {CODE(caption=>YAML)} objects: - type: tracker_field ref: user_tracker_acceptedTerms data: name: I have accepted the Terms of Use permname: acceptedTerms tracker: $profileobject:user_tracker$ options: type: checkbox order: 170 flags: - public - mandatory {CODE} !!You also need to set the group to have registration settings {CODE(caption=>YAML)} permissions: Registered: user_tracker: $profileobject:user_tracker$ user_tracker_field: $profileobject:user_tracker_userselector$ registration_fields: [$profileobject:user_tracker_acceptedTerms$] objects: - type: wiki_page id: registration_tpl allow: [ view, use_as_template ] deny: [ edit ] - type: wiki_page id: terms_tpl allow: [ view, use_as_template ] deny: [ edit ] - type: wiki_page id: terms allow: [ view ] deny: [ edit ] - type: wiki_page id: RenewTerms allow: [ view ] deny: [ edit ] - type: tracker id: $profileobject:user_tracker$ allow: [ view_trackers, create_tracker_items ] Anonymous: objects: - type: wiki_page id: registration_tpl allow: [ view, use_as_template ] deny: [ edit ] - type: wiki_page id: terms_tpl allow: [ view, use_as_template ] deny: [ edit ] - type: wiki_page id: terms allow: [ view ] deny: [ edit ] {CODE} !!The wiki pages needed {CODE(caption=>YAML)} objects: - type: wiki_page ref: renewterms data: name: RenewTerms content: wikicontent:RenewTerms_include description: lang: en - type: wiki_page ref: terms_tpl data: name: terms_tpl content: wikicontent:terms_tpl_include description: lang: en - type: wiki_page ref: terms data: name: Terms content: wikicontent:Terms_include description: lang: en {CODE} !! Example checker module that check the user has accepted or not. You can also simply include the TRACKERITEMFIELD on selected pages like the homepage {CODE(caption=>YAML)} objects: - type: module ref: terms_checker data: name: Terms Checker position: bottom order: 2 cache: 0 rows: 10 groups: - Registered params: custom: | {TRACKERITEMFIELD(fieldId="$profileobject:user_tracker_acceptedTerms$", test="1", value="y", trackerId="$profileobject:user_tracker$")} {ELSE} {REDIRECT(page="RenewTerms")}{REDIRECT} {TRACKERITEMFIELD} parse: true {CODE} Links to included wiki pages: ((registration_tpl_include)) ((RenewTerms_include)) ((terms_tpl_include)) ((Terms_include))