Developer notes for this data channel 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 (non-functioning?)
Supposed to work in 6.x, may require debugging or can't work with the profile requests. TBA. Currently you will have to create your user (or use existing ones) and assign them to the groups after the fact.
YAML
objects:
-
type: users
data:
-
name: $profilerequest:FirstName$FirstName$ $profilerequest:LastName$LastName$
pass: hatchling
group: [$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?
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 roster artist.
Owner_Last (Home page)
Owner_Last Hello (Hello message to guests)
Owner_Last Photos
Owner_Last Content List
Owner_Last Menu
Owner_Last Guest Menu
YAML
objects:
-
type: wiki_page
ref: owner_content_list
data:
name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Content List
content: wikicontent:Owner_Last Content List
-
type: wiki_page
ref: owner_photos
data:
name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Photos
content: wikicontent:Owner_Last Photos
-
type: wiki_page
ref: owner_hello
data:
name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$ Welcome Message
content: wikicontent:owner_Last Hello
-
type: wiki_page
ref: owner_name
data:
name: $profilerequest:FirstName$FirstName$$profilerequest:LastName$LastName$
content: wikicontent:owner_Last
-
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