We want to prevent a certain issue from being reopened after 7 days closed, unless user has role "Administrator" or "Supervisor".
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 following configuration:
Boolean expression used in the example is:
%{00016} = "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} != "Closed" OR {00057} - {00158} < 7 * {DAY} OR isInRole(%{00020}, "Administrator") OR isInRole(%{00020}, "Supervisor")
Note that:
Once configured, transition "Reopen Issue" looks like this
As in the previous example, we allow users in "Administrator" or "Supervisor" project role to bypass this time restriction.
We insert Boolean validator with math, date-time or text-string terms in all the transitions with 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}, "Administrator") OR isInRole(%{00020}, "Supervisor")
An equivalent expression is:
{00057} - {00158} <= 24 * {HOUR} OR isInRole(%{00020}, "Administrator") OR isInRole(%{00020}, "Supervisor")
We have different transitions with origin in a certain status A, and with different destination statuses (B, C and D).
We use Boolean condition with math, date-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 status A, while hiding the other two transitions: