Developer notes for this profile are on Workspace_Profile_Dev

Readme


Private Spaces The WorkspaceProfile creates, in one step, a new user with content only they (and invited guests) can access. The starter set of content includes wiki pages, two file galleries (one private and one for sharing), and a blog.

Run once for each new private space. Each time you run the profile you can enter an owners name, and it will create a user and a private space for that user.

New objects named after the Users Name: Using the ProfileRequest variables that are submitted, the group, the category and the content all shares variations of the same FirstnameLastName. You can change these object names after the profile is run if desired.

Assigned to private "categroups": The profile creates two matched and auto-permissioned category-group pairs. Two categroups are created. One named after the user, which is their "private workspace" that they invite others into - with read only permissions for guests. The second is the "private" categroup for that user which is intended to contain content they alone can see and edit. Also, only members of the "dev" group can edit the "private area" content. This content will (hopefully) not be visible or listable to other (uninvited) users.

Can include boilerplate content: Wiki pages and blog posts can include boilerplate content based on the current content of the pages being called by the profile. See the wiki pages section below for a list of pages. No boilerplate content is currently provided, but it will look for existing pages in this DB.

Not using perspectives: This setup does not use or require the perspectives feature, only the configuration of categories and groups.

Other features currently disabled: Calendar, Twitter feed, User Menupage Modules are all included in this profile in various stages of (non)functionality. Modules are created but need to be assigned to groups manually.

Alpha version use with caution! This profile creates new objects, so it is unlikely to change existing objects groups or categories, it does not change global permissions.

Tested on 4.x, 5.x, 6.x. Originally made for 4.x.

warning: one little typo in an object reference will rubbish the whole profile. be precise. :)



please forward any questions/suggestions to mlpilling@gmail.com



1. Create Users


Currently you will have to create your user (or use existing ones) and assign them to the groups after the fact.

The default password is 'qwerty' - users will be prompted to change at first login.

YAML
objects: - type: users data: - name: $profilerequest:FirstName$FirstName$ $profilerequest:LastName$LastName$ pass: qwerty groups: [$profilerequest:LastName$LastName$ Dev,$profilerequest:LastName$LastName$]




2. Create Categories


to categorize a wiki page in the profile, add an extra line where all the other - [ wiki_page, ....stuff ] is. include the name if the page (if it is also being created by the profile, you must use a reference. (each wiki page should have a "ref:" you just put a dollar sign in front here.

- [ wiki_page, $stuff ]

make sure you are placing it in the right category by deciphering the "name:" or the "ref:" for the category.


YAML
objects: - type: category ref: owner_category data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ description: For the guests and associates of $profilerequest:FirstName$FirstName$ $profilerequest:LastName$LastName$ items: - [ wiki_page, $owner_name ] - [ wiki_page, $owner_photos ] - [ wiki_page, $owner_hello ] - [ wiki_page, $owner_content_list ] - [ wiki_page, $owner_guest_menu ] - [ wiki_page, $owner_menu ] - [ file gallery, $owner_gallery] - [ blog, $owner_blog] - type: category ref: private_category data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private description: For $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Only items: - [ wiki_page, $owner_content_list ] - [ wiki_page, $owner_photos ] - [ wiki_page, $owner_hello ] - [ wiki_page, $owner_menu ] - [ wiki_page, $owner_guest_menu ] - [ file gallery, $private_gallery] - [ file gallery, $owner_gallery] - [ blog, $owner_blog]


3. Create Groups

YAML
mappings: Owner: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ private: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private permissions: Owner: include: [ Registered ] home: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ objects: - type: category id: $owner_category private: include: [ Member, Registered ] home: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ default_category: $private_category objects: - type: category id: $private_category



4. Assign Categories & permissions


Owner Category

YAML
permissions: Owner: objects: - type: category id: $owner_category allow: - read_blog - view_events - view_calendar - view_tiki_calendar - search_categorized - view_categorized - vote_comments - post_comments - read_comments - suggest_faq - view_faqs - view_fgal_path - view_file_gallery - view_fgal_explorer - download_files - list_file_galleries - forum_read - group_view - group_view_members - view_html_pages - list_newsletters - subscribe_newsletters - vote_poll - view_poll_voters - view_poll_results - view_quiz_stats - take_quiz - take_survey - view_survey_stats - site_report - search - view_trackers - list_trackers - tracker_view_ratings - tracker_view_comments - comment_tracker_items - wiki_view_attachments - view private: - type: category id: $owner_category allow: - wiki_attach_files - read_blog - post_blog


Owner Dev Category

YAML
permissions: private: objects: - type: category id: $private_category allow: - read_blog - blog_post - view_events - view_calendar - add_object - view_tiki_calendar - search_categorized - view_categorized - vote_comments - post_comments - read_comments - suggest_faq - view_faqs - view_fgal_path - view_file_gallery - view_fgal_explorer - download_files - upload_files - list_file_galleries - forum_read - group_view - group_view_members - view_html_pages - list_newsletters - subscribe_newsletters - vote_poll - view_poll_voters - view_poll_results - view_quiz_stats - take_quiz - take_survey - view_survey_stats - site_report - search - view_trackers - list_trackers - tracker_view_ratings - tracker_view_comments - comment_tracker_items - wiki_view_attachments - view - edit - wiki_attach_files



Creating New Objects

5. Create File Galleries

YAML
objects: - type: file_gallery ref: private_gallery data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private Files description: Private Gallery for $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ archives: 0 parent: 6 flags: [ public, visible, lockable ] column: [ icon, id, name, description, size, created, creator, files ] - type: file_gallery ref: owner_gallery data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Shared Files description: Public Gallery for $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ archives: 0 parent: 6 flags: [ public, visible, lockable ] column: [ icon, id, name, description, size, created, creator, files ] popup: [explorer, comment]



6. Create a Calendar (DISABLED)

YAML

Turned off because it is buggy
objects:
-
type: calendar
ref: owner_calendar
data:
name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
mode: create_or_update
options:
show_name: y type: calendar


7. Blog and Readme Post

YAML
objects: - type: blog ref: owner_blog data: title: $profilerequest:Blog_Title$My Blog$ description: $profilerequest:FirstName$FirstName$'s Blog user: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ use_title: y allow_comments: N heading : $profilerequest:Blog_Slogan$My blog is awesome$ - type: blog_post ref: owner_blog_first_post data: blog: $owner_blog title: READ ME content: just look for the button with the pencil, eh?



8. Twitter RSS Feed (DISABLED)

This will create an RSS Feed that will display your Tweets on the right side
YAML

objects:
-
type: rss
ref: owner_twitter
data:
name: $profilerequest:LastName$LastName$ Tweets
url: http://twitter.com/statuses/user_timeline/$profilerequest:Twitter_Number$12345678$.rss




9. Wiki Pages


This will contain a list of all the pages to be recreated for each user's instance.

Owner Home (Home page)
Owner Hello (Hello message to guests)
Owner Photos
Owner Content List
Owner Menu
Owner Guest Menu

YAML
objects: - type: wiki_page ref: owner_content_list data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Content List content: wikicontent:Owner Content List - type: wiki_page ref: owner_photos data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Photos content: wikicontent:Owner Photos - type: wiki_page ref: owner_hello data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Welcome Message content: wikicontent:Owner Hello - type: wiki_page ref: owner_name data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ content: wikicontent:Owner Home - type: wiki_page ref: owner_menu data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Menu content: wikicontent:Owner Menu - type: wiki_page ref: owner_guest_menu data: name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Menu content: wikicontent:Owner Guest Menu



Note: if you are using these menupage modules you may have to assign them to the right groups yourself.

YAML
objects: - type: module ref: private_module data: name: menupage position: left groups: [ $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Dev ] order: 1 params: pagemenu: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Menu title: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Private Content nobox: n decorations: n notitle: y - type: module ref: private_guest_module data: name: menupage position: left groups: [ $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Dev ] order: 1 params: pagemenu: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Guest Menu title: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Content nobox: n decorations: n notitle: y