+ $rights_client = 'view_own_reports,view_own_charts,view_own_invoices,manage_own_settings';
+ $rights_user = 'track_own_time,track_own_expenses,view_own_reports,view_own_charts,view_own_projects,view_own_tasks,manage_own_settings,view_users';
+ $rights_supervisor = $rights_user.',track_time,track_expenses,view_reports,view_charts,view_own_clients,override_punch_mode,override_date_lock,override_own_date_lock,swap_roles,approve_timesheets';
+ $rights_comanager = $rights_supervisor.',manage_own_account,manage_users,manage_projects,manage_tasks,manage_custom_fields,manage_clients,manage_invoices,override_allow_ip,manage_basic_settings,view_all_reports';
+ $rights_manager = $rights_comanager.',manage_features,manage_advanced_settings,manage_roles,export_data,manage_subgroups';
+
+ // Active roles.
+ $name = $mdb2->quote($i18n->get('role.user.label'));
+ $description = $mdb2->quote($i18n->get('role.user.description'));
+ $rights = $mdb2->quote($rights_user);
+ $sql = "insert into tt_roles (group_id, name, description, rank, rights, status) values($group_id, $name, $description, 4, $rights, 1)";
+ $affected = $mdb2->exec($sql);
+ if (is_a($affected, 'PEAR_Error'))
+ return false;
+
+ $name = $mdb2->quote($i18n->get('role.client.label'));
+ $description = $mdb2->quote($i18n->get('role.client.description'));
+ $rights = $mdb2->quote($rights_client);
+ $sql = "insert into tt_roles (group_id, name, description, rank, rights, status) values($group_id, $name, $description, 16, $rights, 1)";
+ $affected = $mdb2->exec($sql);
+ if (is_a($affected, 'PEAR_Error'))
+ return false;
+
+ $name = $mdb2->quote($i18n->get('role.comanager.label'));
+ $description = $mdb2->quote($i18n->get('role.comanager.description'));
+ $rights = $mdb2->quote($rights_comanager);
+ $sql = "insert into tt_roles (group_id, name, description, rank, rights, status) values($group_id, $name, $description, 68, $rights, 1)";
+ $affected = $mdb2->exec($sql);
+ if (is_a($affected, 'PEAR_Error'))
+ return false;
+
+ $name = $mdb2->quote($i18n->get('role.manager.label'));
+ $description = $mdb2->quote($i18n->get('role.manager.description'));
+ $rights = $mdb2->quote($rights_manager);
+ $sql = "insert into tt_roles (group_id, name, description, rank, rights, status) values($group_id, $name, $description, 324, $rights, 1)";
+ $affected = $mdb2->exec($sql);
+ if (is_a($affected, 'PEAR_Error'))
+ return false;
+
+ // Inactive roles.
+ $name = $mdb2->quote($i18n->get('role.supervisor.label'));
+ $description = $mdb2->quote($i18n->get('role.supervisor.description'));
+ $rights = $mdb2->quote($rights_supervisor);
+ $sql = "insert into tt_roles (group_id, name, description, rank, rights, status) values($group_id, $name, $description, 12, $rights, 0)";
+ $affected = $mdb2->exec($sql);
+ if (is_a($affected, 'PEAR_Error'))
+ return false;
+
+ return true;