I want to * have a clean way to suspend a project
So that I can temporarly disable access to a project without having to delete it
Acceptance criteria This will reuse the "Holding" status that is already available but un-clear in term of naming and impact:
Rename "Holding" to "Suspended" in site admin project administration (project admin page & list)
When "Suspended" nobody but the site administrators can access the project.
Update handling of "holding" state (when people are accessing the web pages) to display a meaningful error message (instead of "project is holding ATM").
The error message shall be configurable by administrators in site-content
In addition to web pages being not accessible
git accesses should be blocked (read and write)
svn plugin as well as svn core accesses should be blocked (read and write)
REST calls should be blocked
proftpd accesses should be blocked
webdav accesses should be blocked
gerrit, mailing lists, project web pages, cvs and soap are not taken into account (they might still be used) . Technically speaking there is an event so each plugin can inform if there are things that are not blocked when project is supsended. There is a warning box on the site administration project page to inform site admin about things that are not blocked.
Behaviour of cross project features. During the implementation (and after, at usage) unforeseen impacts will be discovered. They will be identified and addressed eventually. However the scope of this story is limited to the case precisely listed bellow:
Cross tracker search: queries that involve trackers that are in projects that are suspended are not run and there is a warning message to inform users.
Move artifacts: the suspended projects are not listed in potential targets
A suspended project cannot be used as template
A suspended project is not listed in "Software map"
A suspended project cannot be used as a source of a user group binding However if the binding already exists, it's still valid in the target project (that is to say suspension of master project has no impact on slaves that depends on groups that are defined on master)
A suspended project that have trackers with shared fields used in other projects is not impacted (shared field values are still usable in target projects)
A suspended project that is umbrella for other projects for gerrit permissions templates has no impact (ie. it's still synchronized with gerrit and permissions are still taken into account)
Artifacts that are linked with artifacts in a suspended project are not listed.
Suspended projects are still taken into account is statistics of usage
It shall be possible to switch from Active to Suspended back and forth without trouble nor impacts.
Remove "Incomplete" from select box to avoid confusion.
When a project status is changed an email is sent to all project members.
The default email is the same but site admin has the possibility to create 1 email template per project status (Active, Suspended, Deleted).
Update documentation to state what each state is doing.
Attachments Empty
CC list axel.bodoignet@st.com, Nouha Terzi (terzino), Denis PILAT (denis_pilat)