]po[ Profile

A "Profile" represents a group of people in ]project-open[. Profile is a sub-type of Group.  It allows users to define themselves and what particular group(s) they belong to.  ]project-open[ comes with a list of pre-configured user profiles.


(Available Profiles List Example)

Profiles and Their Meaning

The following profiles are used as constants in ]po[ and should never be modified. Instead of modifying the group name you can use the localization subsystem to "translate" these profile names.


  • Employees - refers to members of the [internal company] - the company itself.
  • Freelancers - refers to members of provider companies or autonomous external employees contracted by your company.  The forum package for example contains logic that explicitly refers to the group name "Freelancers" to limit freelancer's capability to see and talk with customers.
  • Customers - refers to members of customer companies.

In addition, every "real" ]po[ user in the system should be member of one of the three groups Employees, Freelancers and Customers. This convention is a "best practice" and will simplify user management.

The following groups are special "system" groups that should not be modified: 


  • P/O Admins - application administrators. Admins don't need permissions to see objects.
  • The Public - hidden profile referring to all (even non-authenticated) users in the system.
  • Registered Users - hidden profile referring to users with a valid user account in the system.


The following profiles are less critical then the ones above. However, certain upgrade scripts may refer to them, so that we recommend to maintain them in the system and to use the localization subsystem to adapt their names and meaning. 

  • Project Managers - employees with the right to create and modify projects. 
  • Senior Managers - these users should have the right to do anything in the system, except for SysAdmin tasks.
  • Accounting - employees usually working with finance.
  • HR Managers - employees with special permissions to administrate employees and their critical HR data.
  • Sales - members of the sales team
  • Helpdesk - users of the helpdesk service management module.
  • Freelance Managers - employees with the right to manages providers and "Freelancers"

Profiles Maintenance

The [profiles page] includes links to create new profiles and to delete profiles.

Even though it is possible to create a near infinite number of profiles in the system, we strongly recommend to keep the number of profiles as low as possible, preferably in the range of 8-20, depending on the organization size. 


Profile Fields

  • im_profiles.profile_id - primary key, same as groups.group_id
  • im_profile.profile_gif - the name of a 16x16 GIF to represent the group graphically in administration screens
  • groups.group_id - same as im_profiles.profile_id
  • groups.group_name - pretty English name for the group. This name is then taken as the key for [localization] (intranet-core.Employee is the l10n key for "Employees").
  • groups.join_policy - not used withing ]project-open[. In OpenACS, this fields determines if a user can add himself to a group.


Profiles Database DDL

The following shows the simplified SQL data model for profiles and their "groups" sub-type.

CREATE TABLE im_profiles (
        profile_id      integer not null
                        primary key
                        references groups,
        profile_gif     varchar(100) default 'profile'

        group_id        integer not null
                        primary key
                        references parties,
        group_name      varchar(1000) not null,
        join_policy     varchar(30) default 'open' not null



Related Object Types

Related Packages

  • Profiles are defined as part of the ]po[ Core package.

  Contact Us
  Project Open Business Solutions S.L.

Calle Aprestadora 19, 12o-2a

08902 Hospitalet de Llobregat (Barcelona)


 Tel Europe: +34 609 953 751
 Tel US: +1 415 200 2465
 Mail: info@project-open.com