Bug 8579

Summary: Difficult to find license expiry date as a system administrator
Product: ThinLinc Reporter: Samuel Mannehed <samuel>
Component: OtherAssignee: Samuel Mannehed <samuel>
Status: CLOSED FIXED    
Severity: Normal CC: alexander.zeijlon
Priority: P2 Keywords: aleze_tester, relnotes
Version: trunk   
Target Milestone: 4.19.0   
Hardware: PC   
OS: Unknown   
See Also: https://bugzilla.cendio.com/show_bug.cgi?id=7850
https://bugzilla.cendio.com/show_bug.cgi?id=8578
https://bugzilla.cendio.com/show_bug.cgi?id=8418
Acceptance Criteria:
MUST * Any license expiration dates must be available in an easy way for the admin. * How license expiration impacts user limits must be clear. SHOULD * The license expiry date should be available both through Web Admin and tlctl. * Given multiple licenses, the expiry dates should be listed separately. * When no installed license has any expiry dates, the admin shouldn't be bothered by that info. COULD * The corresponding subscription agreement could be easily connected to the expiry date.

Description Samuel Mannehed cendio 2025-04-21 16:04:49 CEST
Some ThinLinc licenses have expiration dates. That date is difficult to find.

The best way to find that information is to open and view a license file under /opt/thinlinc/etc/licenses/, but this is not very convenient.

It would be cool if this information was available through `tlctl license` and Web Admin.
Comment 3 Samuel Mannehed cendio 2025-04-23 16:44:22 CEST
Should be done. Tested on Fedora 41 using a set of licenses:

 * Valid licenses
 * Expired licenses (by date)
 * Old licenses (old version)
 * Broken license files (from vsm/tests/licenses)

> MUST
> 
> * Any license expiration dates must be available in an easy way for the admin.
Yep they are - both in Web Admin (under status/licenses) and from `tlctl license show`.

> SHOULD
> 
> * The license expiry date should be available both through Web Admin and tlctl.
Yep.
> * Given multiple licenses, the expiry dates should be listed separately.
Yep.
> * When no installed license has any expiry dates, the admin shouldn't be bothered by that info.
Any expiration information is omitted when no such license is installed.

> COULD
> 
> * The corresponding agreement ID could be easily connected to the expiry date.
Yep.
Comment 8 Samuel Mannehed cendio 2025-04-25 16:04:00 CEST
One important detail that the implementation misses right now is how many licenses that will be impacted by the expiry date.

Given that this is tied more closely to agreements, this information is probably best moved to the command showing subscription agreements (currently named `tlctl license id` but will be changed in bug 8418).
Comment 20 Samuel Mannehed cendio 2025-04-28 08:47:29 CEST
(In reply to Samuel Mannehed from comment #8)
> One important detail that the implementation misses right now is how many
> licenses that will be impacted by the expiry date.
> 
> Given that this is tied more closely to agreements, this information is
> probably best moved to the command showing subscription agreements
> (currently named `tlctl license id` but will be changed in bug 8418).

Fixed now. Both the License page in Web Admin and `tlctl license agreement` will show information about how license expiry will impact the user limit. A table will be shown with an overview of agreements, expiry dates, versions, and user limits.

In case there are multiple licenses on the same agreement, they will be shown on separate rows if they have different versions or different expiry dates.
Comment 35 Alexander Zeijlon cendio 2025-04-30 15:00:04 CEST
Testing:
========

I have tested with a selection of different license-zips, where some have expired, some are going to expire, some have no expiry.

  * Both ThinLinc Web Administration and via "tlctl license agreement" presents
    the user with a table where each license is listed. It is also clear which of
    the licenses are usable via the column "Valid".

  * I also see that the sum of all valid licenses are equal to the "User limit"
    line in "tlctl license show", which is expected.


I also tested with licenses that are distributed over more than one file. E.g. with same agreement id, expiry date and ThinLinc-version:

  * All licenses that have equal agreement id, expiry and version are summarized
    into one table row.
Comment 39 Alexander Zeijlon cendio 2025-05-05 10:07:38 CEST
Everything looks good, and acceptance criteria are met, closing!