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"
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.
- 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
profile_gif varchar(100) default 'profile'
CREATE TABLE groups (
group_id integer not null
group_name varchar(1000) not null,
join_policy varchar(30) default 'open' not null
Related Object Types
- Profiles are defined as part of the ]po[ Core package.