Home

Profile (deprecated and stealthed in 2.7+)

Description: Displays and collects user profile information.

Profile2

Lead: Former user (Deleted)
Committers: Former user (Deleted), Former user (Deleted)

Description: Profile2 is a complete re-design and re-development of the existing Profile tool in Sakai. It gives you more of a Facebook style interface for editing your profile. In addition you have a comprehensive set of Privacy controls to allow you to choose who can see what part(s) of your Profile.

With Profile2 you can post updates (integrated with Twitter), search for people with common interests, view their profiles, view their connections, add them as a connection, send private messages, upload and share pictures, and much more.

Profile2 can be run seamlessly alongside the existing profile in Sakai to allow you to evaluate both profile tools. If you've never used the profile tool in Sakai before, now is the time to start.

The development of Profile2 started as part of an ESRC e-Social Science award at Lancaster University in 2008.

See it in action

See the presentation from the 2010 Sakai conference in Denver: Profile2 - Social networking for Sakai 2

Profile2 releases:

The latest version in the 1.4 series (requires Sakai 2.8+) is:
1.4.6 released 23rd January 2011 (changelog)

The latest version in the 1.3 series (Sakai 2.4 onwards) is:
1.3.18 released 9th September 2011 (changelog) (Note that there was no 1.3.16 or 1.3.17 release)

Previous releases in the 1.4 series:
1.4.5 released 21st November 2011 (changelog) (release announcement) (Note that there was no official 1.4.4 release)
1.4.3 released 30th September 2011 (changelog) (release announcement)
1.4.2, released 11th August 2011 (changelog) (Note that there was no 1.4.1 release)
1.4.0, released 12th April 2011 (changelog)

Earlier releases:
1.3.15 released 11th April 2011 (changelog) (release announcement)
1.3.14 released 28th February 2011 (changelog) (release announcement)
1.3.13, released 22nd October 2010 (changelog)
1.3.12, released 25th August 2010 (changelog) (release announcement)
1.3.11, released 20th August 2010 (changelog) (release announcement)
1.3.10, released 12th August 2010 (changelog) (release announcement)
1.3.9, released 9th July 2010 (changelog) (release announcement)
1.3.8, released 24th May 2010 (changelog)
1.3.7, released 27th April 2010 (changelog)
1.3.6, released 25th March 2010 (changelog)
1.3.5, released 4th March 2010 (changelog)
1.3.4, released 6th January 2010 (changelog)
1.3.3, released 19th December 2009 (changelog)
1.3.2, released 18th December 2009 (changelog)
1.3.1, released 18th December 2009 (changelog)
1.3.0, released 18th December 2009 (changelog)
1.2.1, released 12th August 2009 (changelog)
1.2, released 17th July 2009 (changelog)
1.1, released 6th April 2009 (changelog)
1.0.1, released 6th February 2009 (changelog)
1.0, released 4th February 2009

Experimental releases:
There are no current experimental releases. To see what is coming in 1.5, checkout the nightly build server: http://nightly2.sakaiproject.org:8082/portal

Want to try it out first?

Profile2 is the default Profile in Sakai 2.7 and up, but you can also try it out now on the following servers:

Both are hosted by the Sakai Foundation and are reset every 4 hours and 2.30am respectively, Eastern US time.

Version compatibility

 

2.4

2.5

2.6

2.7

2.8

2.9

2.10

1.3.x 1

(tick)

(tick)

(tick)

(tick)

(tick)

(warning)

(warning)

1.4.x 2

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

1.5.x 3

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

1.6.x 4

(error)

(error)

(error)

(error)

(tick)

(tick)

(tick)

1. 1.3.x is compatible with all versions of Sakai, is bundled in Sakai 2.7 and has demonstrated production experience with Sakai 2.6, however lacks some of the newer features and improvements. Note that as of Sakai 2.9, this version is longer actively supported. Security fixes may be applied but it is recommend that you upgrade.
2. 1.4.x and later depend on the ActivityService API, which is only present in Kernel 1.2.0, therefore the minimum version of Sakai required is Sakai 2.8.
3. 1.5.x is the version that ships with Sakai 2.9.0+
4. 1.6.x is the current development version.

How to get it

Check one of the following Installation Guides that is appropriate for your particular version of Sakai. This will walk you through getting the Profile2 source code and its dependencies, and then building it.

Building Profile2 on Sakai 2.4.x
Building Profile2 on Sakai 2.5.x
Building Profile2 on Sakai 2.6.x
Building Profile2 on Sakai trunk

Once you've built Profile2, continue on with the section below.

Upgrading from an older version?

You must make sure that you perform any necessary database conversion BEFORE you start Profile2, or you may run into problems later. Run the appropriate database conversion sql script found at:

PROFILE2-SRC/docs/database/<your db vendor>/

Also double check that you have removed the older version from Tomcat. Generally you only need to check TOMCAT/shared/lib to make sure that there are no suplicates of the profile2-api jars. Only the latest one should be in there. The other artifacts that are deployed to 'components' and 'webapps' should be updated automatically and no duplicates should exist.

Startup/Database Setup

Startup Sakai with auto.ddl=true in your Sakai properties as various new tables need to be created. If you cannot startup with this setting enabled, you will need to manually run the DB scripts located at:

PROFILE2-SRC/docs/database/<your db vendor>/

If you are creating the database tables for the first time, you want the appropriate profile2-ddl-....sql* (not the upgrades) for your version of Profile2.

Setting up Profile2 on MySQL?

Even if you are using auto.ddl=true for your database creation you should run the index-only sql scripts to generate the indexes on the various tables that Profile2 creates. Hibernate doesn't respect the index settings in the configuration files for MySQL, so the indexes aren't created. The index scripts are in the same directory as the creation/upgrade scripts above.

Once you've started up Sakai you'll be able to add the new Profile2 tool to My Workspace sites.

IMPORTANT See below for the sakai.properties you can use to configure Profile2 on a global level as well as the additional JAVA_OPTS you might need if you are behind a firewall/proxy.

Settings

Profile2 uses the following sakai.properties:

# Upload limit for profile pictures, in MB
profile2.picture.max=2

# Convert images from old profile to new?
profile2.convert=false

# Allow users to post status updates to Twitter? (true/false, default true)
profile2.integration.twitter.enabled=true

# Allow users to change their profile picture? (true/false, default true)
profile2.picture.change.enabled=true

# Can users upload an image or just link to an existing one? (upload/url, default upload)
# As of 1.4 this also supports the 'official' value, see the section below.
profile2.picture.type=upload

################################
## Available as of version 1.2:
################################

# Allow users to change their privacy settings? (true/false, default true)
profile2.privacy.change.enabled=true

# Override the default privacy settings with these options (0=everyone, 1=only connections, 2=only me)
# This will set the defaults for a person with no existing privacy record
# or when the privacy settings are locked (change.enabled=false)
# Key: 0=everyone, 1=only connections, 2=only me, 3=nobody
# If not specified, all properties below default to the values below
# Also note not all properties have the full range (0,1,2,3). Each is documented underneath the property itself.

profile2.privacy.default.profileImage=0
# 0,1 only
profile2.privacy.default.basicInfo=0
# 0,1,2
profile2.privacy.default.contactInfo=0
# 0,1,2
profile2.privacy.default.personalInfo=0
# 0,1,2
profile2.privacy.default.birthYear=true
# true/false
profile2.privacy.default.search=0
# 0,1 only
profile2.privacy.default.myFriends=0
# 0,1,2
profile2.privacy.default.myStatus=0
# 0,1 only

################################
## Available as of version 1.3:
################################

# List of userIds (not eids) that will never show in searches or friends lists (comma separated no spaces, default=postmaster)
profile2.invisible.users = postmaster

# Set this to tell the ProfileManager to get it's data from Profile2.
# If left unset, any tools that use the ProfileManager from the original profile tool (ie Roster)
# will continue to use the data from org.sakaiproject.api.app.profile.LegacyProfileManager.
# So you must set this to enable the integrations.
# If you are using a version of Sakai prior to 2.7, you need to apply the patch attached to
# http://jira.sakaiproject.org/browse/SAK-17573 in order for this property to have any effect
# NO LONGER SUPPORTED IN v10+
profile.manager.integration.bean=org.sakaiproject.profile2.legacy.ProfileManager


# Additional privacy defaults. These replace the old profile2.privacy.default.academicInfo setting
profile2.privacy.default.staffInfo=0
# 0,1,2
profile2.privacy.default.studentInfo=0
# 0,1,2

##########################################
## Available as of version 1.3.9 onwards:
##########################################

# Optional parameters if you have registered a Twitter application and want to use that as the registered application instead of Profile2.
# See the section on registering a Twitter application, as this is rather involved.
profile2.twitter.oauth.key=
profile2.twitter.oauth.secret=

# Profile2 provides a formatted entity via EntityBroker at /direct/profile/{userid}/formatted.
# However large amounts of data, particularly in the personal summary section of a user's profile, can make this view rather large.
# This property can restrict how much is shown, defaults to 1000 characters.
profile2.formatted.profile.summary.max=1000

###########################################
## Available as of version 1.3.10 onwards:
###########################################

# Sets the ability for a user to change their profile image on a per user type basis.
# If not set, defaults to the value of profile2.picture.change.enabled which defaults to true.
profile2.picture.change.USER_TYPE.enabled=true (true/false, defaults to profile2.picture.change.enabled setting)

################################
## Available as of version 1.4:
################################

profile2.privacy.default.businessInfo=0
# 0,1 only
profile2.privacy.default.myPictures=0
# 0,1 only
profile2.privacy.default.messages=1
# 1,3 only
profile2.privacy.default.myKudos=0
# 0,1 only
profile2.privacy.default.socialInfo=0
# 0,1,2
# Enable/disable the gallery feature? (true/false, default true)
profile2.gallery.enabled=true

# Enable/disable the business profile feature? (true/false, default false)
profile2.profile.business.enabled=false

### OFFICIAL IMAGE SUPPORT

# To enable support for using official images, set to true:
profile2.official.image.enabled=false (true/false, default false)

# If enabled, where should Profile2 look for the officially provided images?
# If 'url', you need to add a URL for each user to the PROFILE_IMAGES_OFFICIAL_T table in the database.
# If 'provider', you need your UserDirectoryProvider implementation to add a BASE64 encoded image to a property
# on the User object. This is already in place for the LDAP provider, just setup the jpegPhoto attribute.
# See http://jira.sakaiproject.org/browse/SAK-17816.
profile2.official.image.source=url (url/provider, default url)

# If enabled and you set the source to 'provider' above you also need to specify the attribute,
# if different to this value.
profile2.official.image.attribute=jpegPhoto (default jpegPhoto)

# Note that if you want to use *only* officially provided images you also should set
# profile2.picture.type=official
# If you want to allow a user to choose either the official image or an uploaded/url one of their choice,
# do not set type=official and rather set profile2.picture.type=url/upload. They will then be able to choose
# to use either the official image, or one they select.
# Remember, you can always disable changes altogether via profile2.picture.change.enabled=false

### SEARCH OPTIONS

# The maximum number of search results that should be returned per search (default=50)
profile2.search.maxSearchResults=50

# The maximum number of search results per page (default=25)
profile2.search.maxSearchResultsPerPage=25

### IMPORT PROFILES FROM A CSV FILE
# You can now import profile data from a CSV file. The CSV file must be located on the Sakai server.
# For the format of the CSV file, see
# https://jira.sakaiproject.org/browse/PRFL-684?focusedCommentId=140799&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-140799
profile2.import=false (set to true to enable and also set the profile2.import.csv field)
profile2.import.csv=/path/to/file/import.csv

### DISABLING CERTAIN SECTIONS

# Show any of the profile fields? (true/false, default true)
# Useful if you want people to have profiles but not have any information
# Users will then only have a name and image
# Use in combination with the privacy defaults/locking to set this as desired otherwise it will show redundant options.
profile2.profile.fields.enabled=true

# Allow status updates and display? (true/false, default true)
profile2.profile.status.enabled=false

#######################
## Updated properties:
#######################

# As of 1.4, the following properties are no longer supported:
profile2.privacy.default.search (removed, see http://jira.sakaiproject.org/browse/PRFL-293)
profile2.integration.twitter.source (removed, see http://jira.sakaiproject.org/browse/PRFL-94)
profile2.privacy.default.academicInfo (replaced with studentInfo and staffInfo for more granular settings)

################################
## Available as of version 1.5:
################################

# GRAVATAR SUPPORT

# Allow users to set gravatars as their images
profile2.gravatar.image.enabled=true (true/false, default true)

# WALL PAGE

# Enable/disable the Profile2 wall page globally
profile2.wall.enabled=true (true/false, default true)
# Use the wall page as the default Profile2 page
profile2.wall.default=false (true/false, default false)

# ADDITIONAL PRIVACY DEFAULTS


# Default wall privacy option
profile2.privacy.default.myWall=0
# 0,1 only# Default online status privacy option
profile2.privacy.default.onlineStatus=0
# 0,1 only

# FORUMS INTEGRATION

# Should users profiles be linked in forum posts?
profile2.profile.link.enabled=true (true/false, default true)

# USER TYPE IMAGE
# Set the image for the user based on their user type (true/false, default false)
# If enabled, you also need to set the full URL to images for each user type.
# If a user type has no associated image it will fall back to whatever other image is set, either via upload/url/official/gravatar, or the default.
# To restrict a user from changing the image, combine with profile2.picture.change.enabled=true
profile2.user.type.image.enabled=false
profile.user.type.image.guest=http://url.to/some/image.jpg
profile.user.type.image.registered=http://url.to/some/otherimage.png


# EMAIL NOTIFICATION ON PROFILE CHANGE
# You can configure an email to be sent to a specific user whenever anyone updates their profile. (true/false, default false)
# This defaults off and must be explicitly configured. The user gets a notification only, no actual profile content is sent.
# They still need to login to view the info and the same permissions are applied.
# Therefore it is recommended the eid property be set to a super user.
profile2.profile.change.email.enabled=false
profile2.profile.change.email.eid=admin
 
################################
## Available as of version 11:
################################
 
# Enable/disable the staff profile feature? (true/false, default true)
profile2.profile.staff.enabled=true

# Enable/disable the student profile feature? (true/false, default true)
profile2.profile.student.enabled=true

# Enable/disable the social profile feature? (true/false, default true)
profile2.profile.social.enabled=true

# Enable/disable the interests profile feature? (true/false, default true)
profile2.profile.interests.enabled=true
 
# Official images can now be stored on a filesystem. Use this setting in combination with profile2.official.image.directory and optionally choose a pattern
profile2.official.image.source=filesystem

# Base directory for the official photos on the filesystem (default = /official-photos)
profile2.official.image.directory=/official-photos
 
# Choose a pattern for the layout of images in this directory
# Options:
# ONE_DEEP which is of the form: BASEDIR/j/jsmith26.jpg
# TWO_DEEP which is of the form: BASEDIR/j/s/jsmith26.jpg (default)
# ALL_IN_ONE which is if you have all images in the same directory, ie: BASEDIR/jsmith26.jpg, BASEDIR/fsmith31.jpg
profile2.official.image.directory.pattern = TWO_DEEP

### IMPORTANT NOTE ###
# As of 1.6, to view official images from within a site, you must have the roster.viewofficialphoto permission set.
 
# Enable/disable the messaging feature? (true/false, default true)
profile2.messaging.enabled=true
 
# Convert images from URL to local storage (added in PRFL-740)
profile2.import.images=true
 
# Specify the access level role to be used when creating worksites. Defaults to ROLE_ACCESS.
profile2.worksite.access.role=access
 
# If using official images via a URL, the default behaviour is to redirect to that image.
# You can optionally tell Profile2 to fetch the data on your behalf and render it the same as an uploaded image rather than performing a redirect
# This will mean the URL is not exposed to students, which may or may not be a privacy issue for you.
# Note that enabling this may reduce performance. (true/false, default false)
profile2.official.image.url.secure=false

Twitter integration

Profile2 has a built-in Twitter integration for status updates. This is configurable by each user in their Preferences page of their Profile (not to be confused with the main Account Preferences). Once a user has linked their Twitter account, status updates will then update Twitter. Administrators can control this globally by adjusting the profile2.integration.twitter.enabled sakai property.

Settings

If you are behind a proxy or web cache, you will need to add these settings to your JAVA_OPTS to allow Profile2 to send status updates to Twitter:

-Dhttp.proxyHost=proxy.host.ac.uk -Dhttp.proxyPort=8080
-Dhttp.proxyUser=someUserName -Dhttp.proxyPassword=somePassword

NOTE: http.proxyUser and http.proxyPassword are only required if you need to authenticate to your proxy.

Changing the Twitter source (optional)

By default, Twitter updates will appear to come from Profile2 (as Profile2 is a registered Twitter application).
If you want updates to come from a different 'source', you need to register an application with Twitter and provide the settings to Profile2. Fill out this form: http://twitter.com/oauth_clients/new

Be sure to choose 'client' as the Application type, NOT 'browser'. When user's link their account they will be prompted to enter a code into Profile2, that will then be verified and their own access token and secret stored in the database.

Once you have filled out the form, add the key and secret supplied to your application in the following sakai.properties:
profile2.twitter.oauth.key=
profile2.twitter.oauth.secret=

DO NOT reset these keys without updating the properties in Sakai, as the integration will no longer function if they are out of sync (they are essentially your application's username and password).

Give Profile2 an icon in the tool list

Add this to SAKAI-SRC/reference/library/src/webapp/skin/YOURSKIN/portal.css

.icon-sakai-profile2 {
	background-image: url(../../image/silk/vcard.png);
}

EntityBroker support

See this page for information about the Entities exposed/supported by Profile2.

Adoption

See this page for a list of institutions using or trialling Profile2

Found a bug? Want something added? Things don't look right?

Check the Common issues with Profile2 page.

If that doesn't help, then please submit all bugs and feature requests as Jira tickets at:http://jira.sakaiproject.org/jira/browse/PRFL

If the issue is cosmetic, please make sure to include what environment (operating system and browser + version) you experienced the issue on.

Internationalisation (i18n)

Profile2 currently supports the following languages:

  • English (British and Australian) - default
  • English (en_US)
  • Catalan (ca)
  • Spanish (es)
  • Dutch (nl)
  • Portuguese (pt_PT)
  • Russian (ru)
  • Indonesian (in_ID)
  • Japanese (ja)

If you would like Profile2 to appear in your language, feel free to translate the following three property files and send them along:

In addition, the email templates can be internationalised:
https://source.sakaiproject.org/svn/profile2/.../api/emailtemplates/

Please append the country code/variant to the filename: (eg template-connectionRequest_en_GB.xml)

Current status

type key summary status

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Showing the first 100 issues - view full list.