Date: Fri, 29 Mar 2024 13:29:52 +0100 (CET) Message-ID: <34473382.570.1711715392879@apps-confluence-5.apps-confluence.apps.svc.cluster.local> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_569_1416224706.1711715392879" ------=_Part_569_1416224706.1711715392879 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
We want to prevent a certain issue from being reopened after 7 days clos= ed, unless user has role "Administrator" or "Super= visor".
We implement this use case by inserting a validator Boolean validator with math, date-time or text-string terms in transition "Reopen Issue" with the fol= lowing configuration:
Boolean expression used in the example is:
%{00016} =3D "Closed" AND {00057} - {00158} > 7 * {DAY} IMPLIES=
isInRole(%{00020}, "Administrator") OR isInRole(%{00020}, "Supervisor")
We are using logical connective IMPLIES for clarity. An= equivalent expression using only primitive logical connectives is:
%{00016} !=3D "Closed" OR {00057} - {00158} < 7 * {DAY} OR isIn=
Role(%{00020}, "Administrator") OR isInRole(%{00020}, "Supervisor")
<=
/p>
Note that:
Once configured, transition "Reopen Issue" looks like t= his
As in the previous example, we allow users in "Administrator" or "Supervisor" project role to bypass this time re= striction.
We insert Boolean validator with math, = date-time or text-string terms in all the transitions wi= th origin in the status we want to ensure 24 hours of permanence:
Boolean expression used in the example is:
{00057} - {00158} > 24 * {HOUR} IMPLIES isInRole(%{00020}, "Adm=
inistrator") OR isInRole(%{00020}, "Supervisor")
An equivalent expression is:
{00057} - {00158} <=3D 24 * {HOUR} OR isInRole(%{00020}, "Admin=
istrator") OR isInRole(%{00020}, "Supervisor")
We have different transitions with origin in a certain status A<=
/strong>, and with different destination statuses (B,
We use Boolean condition with math, dat= e-time or text-string terms in each of the 3 transitions= A -> B, A -> C and A ->= D with different boolean expressions, in order to show in UI only= one of these transitions depending on the time the issue has passed in sta= tus A, while hiding the other two transitions:
<= /p>