• Status New
  • Percent Complete
  • Task Type Feature Request
  • Category Backend/Core
  • Assigned To No-one
  • Operating System All
  • Severity Low
  • Priority Very Low
  • Reported Version 1.0 devel (github master)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Flyspray
Opened by peterdd - 16.01.2019
Last edited by peterdd - 16.01.2019

FS#2535 - new optional Flyspray setting: add new users automatically to a project user group

When a Flyspray installation allows user self registration and has public but also more private projects, this feature could make the required configuration more clear:

In this case, keep the number of global user groups as low as possible and the global user group for basic or just registered users has only the ‘can login’ permission and nothing more.
Because that only would be useless for new registered users, adding them also to a basic user group of a public project could be useful.

So my suggestion is:

A new optional global setting: Something like ‘default project user group’ (store 2 values: a project_id and a group_id). Validity of that setting must be checked during any user registration, so that project must exists now and at later time as also that project user group within that project. (’Checks’ of admin prefs)

So it would be like this for a new registered userA:

  1. userA is in a basic default global user group: only login permission to handle his account registration (login, logout, user preferences, password forgotten)
  2. userA is in project X default user group: some basic permissions you want allow for every (new) registered user in project X
  3. project Y: all ‘allow anyone ...’-settings are unchecked, userA not in any user group of project Y

The setting is probably best put below the ‘Default global group for new users’ setting in the global admin prefs tab #userregistration as

Either: A dropdown list with all public projects with an existing user group and dependend on the selection the available basic project groups are loaded by ajax as a select list too.

Or: Only one dropdown list that contains a list of public projects with possible project user groups. Would not require extra ajax calls and is maybe enough because we could exclude project groups that have project manager permission or such configuration nobody would allow new registered users.

no default project user group
public projectA - simple user groupA1
public projectA - simple user groupA2
public projectB - simple user groupB
public projectC - simple user groupC

This idea could be enhanced further (put the new user to multiple public projects when he registers or let user choose from public allowed projects during registration process), but lets start simple.

Project Manager

Here a little variation of the idea for storing that setting:

A new field in the groups table. Lets call it autoaddnewuser or something like that. Default is 0 (false), or 1 (true).

So also project managers who have no admin permission can decide if new users are automatically added (in the final registration step) to their own default project group.

A bit of logic restrictions should be added to setting that value to 1 for a user group like allowing adding to a group with project manager permission.

Also there should be only one user group of a project allowed to have this set. (Flyspray doesn't handle a user in 2 or more user groups of the same project correct, so avoid that.)

The new field status of each group should be visible on the user group overview pages too.

The feature should also come with some improvements of user management.
For instance a possibility to add active users who are yet only in a global user group
to a user group of a project. For instance here on most users are only in a global group with limited permissions, but not a user group of project Flyspray. By adding them to a default user group of the flyspray project and then removing all remaining permissions(except login permission) of the global default user group allows cleaner handling of permissions with mixed public/private projects.

Project Manager

Maybe also let a new user choose during registration process in which public projects he is interested in.

So if both public projectA and projectB have configured a default addnewusergroup, but the user is only interested in projectB, he can select during registration process from a list of public projects their addnewusergroup.


Available keyboard shortcuts


Task Details

Task Editing