•  
     
    story #12160 have a clean way to suspend a project
Summary
site administrator
have a clean way to suspend a project

I can temporarly disable access to a project without having to delete it

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.

 

Empty
axel.bodoignet@st.com, Nouha Terzi (terzino), Denis PILAT (denis_pilat)
Status
Empty
Done
Development
  • [ ] Does it involves User Interface? 
  • [ ] Are there any mockups?
  • [ ] Are permissions checked?
  • [ ] Does it need Javascript development?
  • [ ] Does it need a forge upgrade bucket?
  • [ ] Does it need to execute things in system events?
  • [ ] Does it impact project creation (templates)?
  • [ ] Is it exploratory?
Empty
Details
#12160
Manuel Vacelet (vaceletm)
2018-11-07 11:26
2018-08-22 14:47
4271

References
Referencing story #12160

Git commit

tuleap/tuleap/stable

Rename "Holding" status to "Suspended" 2ce7ecb738
Rename Project::STATUS_HOLDING to Project::STATUS_SUSPENDED ee0901264d
Refactor groupedit.php 108c168933
Trash completely the "Incomplete" status 23428b9229
Have a beautiful "Project is suspended" message 5969909f24
Use tlp-button-icon instead of fa-fw a0a0fe3709
Send a mail for each project members on project status changed ecf8c88e92
Create a dedicated events for suspended projects bd6b0a5749
Each status have now its own mail content ba7fa83adf
Project status change notifs mails should have a bodytext ed9daa6ff9
Create a dedicated system event for notifications e9278490be
Site administrator should be able to browse suspended projects 18b75f11d9
Git HTTP commands must be blocked in suspended projects ed8324952c
Block acces to SVN plugin and core when project is suspended 26cbef9a76
Block Tracker REST routes d084d1ca3a
Convert ConfigSerializer tests to PHPUnit a29c114d95
Block Agiledashboard REST routes 74a260e80c
Convert ProjectSerializer tests to PHPUnit 3868ba7f21
Block SVN REST routes 89f1f782d6
Block Git/Gerrit REST routes 5efdbee5d9
Block Git access through SSH when a project is suspended 94f3c90401
Block pull request REST routes d49a681a8c
Block cardwall REST routes 7dfd09a1e3
Block Kanban REST routes 4571eb350d
Block project REST routes 084f0846e6
Forbid to switch back to pending status 5b4ee7c6f2
Reorganize SVN Redis cache to be able to revoke cache per project 937cabf79a
Block artifacts REST routes f7503b0618
Show warning about not blocked services in site administration 5ac1fa6fd5
Suspended projects cannot be selected as template project 85b6dbf2c3
Block FRS REST routes b05169a231
Move artifat cannot be done in non active projects d7ae2e2fff
A non active project must not be used as a source of ugroup binding 5f0791ce13
Suspended project should be displayed in project statistics graph 55b3f45349
Correct style of warning message for project administrator 9ab093b38e
Block users*/ REST routes 0374ed3583
Block Timetracking REST routes 3524e7da35
Invalidate SVN authentication Redis cache when project status is changed 5a9eb403ab
Do not display linked artifact based on a non active project d32df1791c
Block CSV export endpoint when project is suspended d30e543f28
Access to subversion repositories in suspended projects should not be allowed de285fc7c0
Server errors when doing SVN operations and using the APR authentication cache ace68fd002
Test access to suspended project trackers aba08eb3c9
Convert ArtifactLinkValidatorTest to PHPUnit c1aa9078a9
User should be able to create new project based on a template project 2210aa784d
Test access to suspended projects artifacts 019f0ee9f3
No more able to link an artifact located in a non active project a066564625
User should not be able to add shared field on non active projects 48cf344c8d
Unit tests should not depend on dynamically declared fields 1838701307
Trackers in a suspended projects should not be considered readable by most users 21226d0af2
Glossify error states 6c439a156b
Widget cross tracker search should not prevent user to update query when it has suspended projects in query e90379a849
Use latest version of tumbleweed 514bbd81c0
Block gerrit migration if parent project is suspended 47ab3c5a66
Suspended/deleted for gerrit umbrella project 50e6076818
Cross tracker - allow query for regular user 486ed11816
Block TestManagement REST routes 318d0ab507

Follow-ups

User avatar

Update after team review and estimation.

A special review is needed of cross project impacts


  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • CC list set to Denis PILAT (denis_pilat), Nouha Terzi (terzino), axel.bodoignet@st.com
User avatar
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
User avatar
mail to all members.
unsupported service will have to be managed manually.
svn_core part of the service covered.(manuel to change this)
Estimation can start

  • So that
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes
  • Acceptance criteria
    Something went wrong, the follow up content couldn't be loaded
    Only formatting have been changed, you should switch to markup to see the changes