Alejandro Celaya
|
5d367da626
|
Migrated DownloadGeoLiteDbCommandTest to use PHPUnit mocks
|
2022-10-22 14:02:38 +02:00 |
|
Alejandro Celaya
|
59de5a5f55
|
Migrated RenameTagCommandTest to use PHPUnit mocks
|
2022-10-22 13:53:45 +02:00 |
|
Alejandro Celaya
|
0855104068
|
Migrated ListTagsCommandTest to use PHPUnit mocks
|
2022-10-22 13:49:11 +02:00 |
|
Alejandro Celaya
|
8c6f97c4e2
|
Migrated GetTagVisitsCommandTest to use PHPUnit mocks
|
2022-10-22 13:47:28 +02:00 |
|
Alejandro Celaya
|
2d16856582
|
Migrated DeleteTagsCommandTest to use PHPUnit mocks
|
2022-10-22 13:45:11 +02:00 |
|
Alejandro Celaya
|
41e903cf26
|
Migrated ResolveUrlCommandTest to use PHPUnit mocks
|
2022-10-22 13:44:10 +02:00 |
|
Alejandro Celaya
|
4872bd3a92
|
Migrated ListShortUrlsCommandTest to use PHPUnit mocks
|
2022-10-22 13:42:46 +02:00 |
|
Alejandro Celaya
|
8b675f55cc
|
Migrated GetShortUrlVisitsCommandTest to use PHPUnit mocks
|
2022-10-22 13:38:46 +02:00 |
|
Alejandro Celaya
|
acda7f02c6
|
Migrated DeleteShortUrlCommandTest to use PHPUnit mocks
|
2022-10-22 13:36:33 +02:00 |
|
Alejandro Celaya
|
184ff90b9f
|
Migrated CreateShortUrlCommandTest to use PHPUnit mocks
|
2022-10-22 13:27:48 +02:00 |
|
Alejandro Celaya
|
d8be3c28cb
|
Migrated ListDomainsCommandTest to use PHPUnit mocks
|
2022-10-22 13:21:54 +02:00 |
|
Alejandro Celaya
|
3d358ab046
|
Migrated GetDomainVisitsCommandTest to use PHPUnit mocks
|
2022-10-22 13:21:00 +02:00 |
|
Alejandro Celaya
|
960bdfc232
|
Migrated DomainRedirectsCommandTest to use PHPUnit mocks
|
2022-10-22 13:17:12 +02:00 |
|
Alejandro Celaya
|
101b4daff4
|
Migrated MigrateDatabaseCommandTest to use PHPUnit mocks
|
2022-10-22 13:08:05 +02:00 |
|
Alejandro Celaya
|
13431ff8cf
|
Migrated CreateDatabaseCommandTest to use PHPUnit mocks
|
2022-10-22 13:05:36 +02:00 |
|
Alejandro Celaya
|
4cdcad29df
|
Migrated ListKeysCommandTest to use PHPUnit mocks
|
2022-10-22 12:53:28 +02:00 |
|
Alejandro Celaya
|
a4c34ff7be
|
Migrated GenerateKeyCommandTest to use PHPUnit mocks
|
2022-10-22 12:52:11 +02:00 |
|
Alejandro Celaya
|
2b7b5e9a8f
|
Migrated DisableKeyCommandTest to use PHPUnit mocks
|
2022-10-22 12:48:17 +02:00 |
|
Alejandro Celaya
|
58db902084
|
Migrated CliTestUtilsTrait to use PHPUnit mocks
|
2022-10-22 12:46:16 +02:00 |
|
Alejandro Celaya
|
dbe35cf567
|
Fixed coding styles
|
2022-10-22 10:03:28 +02:00 |
|
Alejandro Celaya
|
8298f9d491
|
Migrated NotifyVisitToMercureTest to use PHPUnit mocks
|
2022-10-22 10:03:05 +02:00 |
|
Alejandro Celaya
|
16a951b938
|
Migrated NotifyNewShortUrlToMercureTest to use PHPUnit mocks
|
2022-10-22 09:50:12 +02:00 |
|
Alejandro Celaya
|
51fcbfb3c2
|
Migrated UpdateGeoLiteDbTest to use PHPUnit mocks
|
2022-10-22 09:42:21 +02:00 |
|
Alejandro Celaya
|
e01e370d16
|
Migrated NotifyVisitToWebHooksTest to use PHPUnit mocks
|
2022-10-22 08:08:49 +02:00 |
|
Alejandro Celaya
|
736ac8ba90
|
Migrated LocateVisitTest to use PHPUnit mocks
|
2022-10-22 07:54:57 +02:00 |
|
Alejandro Celaya
|
d07104b8d9
|
Migrated LocateUnlocatedVisitsTest to use PHPUnit mocks
|
2022-10-22 07:34:38 +02:00 |
|
Alejandro Celaya
|
cad53e397a
|
Migrated CloseDbConnectionEventListenerTest to use PHPUnit mocks
|
2022-10-22 07:32:37 +02:00 |
|
Alejandro Celaya
|
3608a6d068
|
Migrated CloseDbConnectionEventListenerDelegatorTest to use PHPUnit mocks
|
2022-10-22 07:28:15 +02:00 |
|
Alejandro Celaya
|
bf0b58b344
|
Migrated NotFoundTypeResolverMiddlewareTest to use PHPUnit mocks
|
2022-10-21 19:32:25 +02:00 |
|
Alejandro Celaya
|
ff543b151c
|
Migrated NotFoundTrackerMiddlewareTest to use PHPUnit mocks
|
2022-10-21 19:29:02 +02:00 |
|
Alejandro Celaya
|
d842025835
|
Migrated NotFoundTemplateHandlerTest to use PHPUnit mocks
|
2022-10-21 19:25:29 +02:00 |
|
Alejandro Celaya
|
230e56370a
|
Migrated NotFoundRedirectHandlerTest to use PHPUnit mocks
|
2022-10-21 19:24:39 +02:00 |
|
Alejandro Celaya
|
a8514a9ae4
|
Migrated DomainServiceTest to use PHPUnit mocks
|
2022-10-21 19:01:41 +02:00 |
|
Alejandro Celaya
|
148f7a9cfe
|
Migrated CrawlingHelperTest to use PHPUnit mocks
|
2022-10-21 18:49:47 +02:00 |
|
Alejandro Celaya
|
29d50cabc2
|
Migrated NotFoundRedirectResolverTest to use PHPUnit mocks
|
2022-10-21 18:47:10 +02:00 |
|
Alejandro Celaya
|
a8f8297131
|
Migrated RedirectActionTest to use PHPUnit mocks
|
2022-10-21 18:44:55 +02:00 |
|
Alejandro Celaya
|
cd4b632d75
|
Migrated QrActionTest to use PHPUnit mocks
|
2022-10-21 18:39:22 +02:00 |
|
Alejandro Celaya
|
843754b7e7
|
Migrated PixelActionTest to use PHPUnit mocks
|
2022-10-21 18:32:34 +02:00 |
|
Alejandro Celaya
|
8cfa0b595c
|
Migrated to PHPUnit mocks in RobotsActionTest
|
2022-10-12 18:23:36 +02:00 |
|
Alejandro Celaya
|
bcd5d2848d
|
Used PHPUnit mocks in RoleResolverTest instead of prophezy
|
2022-10-12 12:47:58 +02:00 |
|
Alejandro Celaya
|
1557438fdf
|
Moved logic to reuse command options to option classes instead of base abstract command classes
|
2022-10-06 21:29:27 +02:00 |
|
Alejandro Celaya
|
27b680e0cd
|
Created CLI test for short URLs list
|
2022-10-06 21:01:11 +02:00 |
|
Alejandro Celaya
|
d3faa22b78
|
Fixed usage of enum where the enum's value should be used
|
2022-09-30 17:26:22 +02:00 |
|
Alejandro Celaya
|
3dda49dab4
|
Created middleware which ensures trailing slash and multi-segment features work properly together
|
2022-09-30 17:19:07 +02:00 |
|
Alejandro Celaya
|
0c6f8f1136
|
Refactored global entities into their own proper namespaces
|
2022-09-23 19:03:32 +02:00 |
|
Alejandro Celaya
|
9f9d011d46
|
Moved ShortCodeUniquenessHelper to ShortUrl\Helper namespace
|
2022-09-23 18:46:51 +02:00 |
|
Alejandro Celaya
|
e28b73c130
|
Refactored global services into their own proper namespaces
|
2022-09-23 18:42:38 +02:00 |
|
Alejandro Celaya
|
56f953ab2f
|
Refactored global validations into their own proper namespaces
|
2022-09-23 18:30:07 +02:00 |
|
Alejandro Celaya
|
3ad8be175c
|
Refactored global repositories into their own proper namespaces
|
2022-09-23 18:24:14 +02:00 |
|
Alejandro Celaya
|
f5f990511c
|
Refactored global models into their own proper namespaces
|
2022-09-23 18:05:17 +02:00 |
|
Alejandro Celaya
|
909e42b0be
|
Moved services related to geolocating visits to the Visit\Geolocation namespace
|
2022-09-23 14:50:26 +02:00 |
|
Alejandro Celaya
|
8605b35b57
|
Removed unneeded injected dependency
|
2022-09-18 19:22:57 +02:00 |
|
Alejandro Celaya
|
36680e82aa
|
Reduced duplication in LocateVisitsCommand by reusing VisitToLocationHelper
|
2022-09-18 19:21:59 +02:00 |
|
Alejandro Celaya
|
83b7d5a5f1
|
Extracted logic to geolocate a visit, handling possible domain errors
|
2022-09-18 18:44:01 +02:00 |
|
Alejandro Celaya
|
6f17f70137
|
Allowed to delay GeoLite2 db download on docker images
|
2022-09-18 17:00:03 +02:00 |
|
Alejandro Celaya
|
ef01754ad5
|
Added event dispatching to UpdateGeoLiteDb dispatcher so that it locates visits when file has just been created
|
2022-09-18 11:17:17 +02:00 |
|
Alejandro Celaya
|
eab9347522
|
Created enum to determine what was the result of updating a geolite DB
|
2022-09-18 10:31:14 +02:00 |
|
Alejandro Celaya
|
59bcd62717
|
Moved Geolocation services to its own namespace inside CLI module
|
2022-09-18 10:01:22 +02:00 |
|
Alejandro Celaya
|
3f01fad12f
|
Ensured empty initial PAI keys are discarded
|
2022-09-18 09:29:38 +02:00 |
|
Alejandro Celaya
|
8d244c8d34
|
Migrated UrlShortenerOptions to immutable object
|
2022-09-17 15:54:43 +02:00 |
|
Alejandro Celaya
|
42af057316
|
Migrated RedirectOptions to immutable object
|
2022-09-17 15:36:40 +02:00 |
|
Alejandro Celaya
|
8f68078835
|
Migrated RabbitMqOptions to immutable object
|
2022-09-17 13:56:59 +02:00 |
|
Alejandro Celaya
|
0c34032fd3
|
Migrated QrCodeOptions to immutable object
|
2022-09-17 13:45:09 +02:00 |
|
Alejandro Celaya
|
20f457a3e9
|
Migrated NotFoundRedirectOptions to immutable object
|
2022-09-17 13:32:40 +02:00 |
|
Alejandro Celaya
|
784908420e
|
Migrated DeleteShortUrlsOptions to immutable object
|
2022-09-17 13:04:49 +02:00 |
|
Alejandro Celaya
|
9685929824
|
Migrated AppOptions to immutable object
|
2022-09-17 13:01:28 +02:00 |
|
Alejandro Celaya
|
fe4b2c4ae4
|
Migrated TrackingOptions to immutable object
|
2022-09-17 12:57:04 +02:00 |
|
Alejandro Celaya
|
1966367caf
|
Fixed ApiKeyRepository for MS and Postgres
|
2022-09-11 12:33:28 +02:00 |
|
Alejandro Celaya
|
eed7b6e565
|
Added db test for ApiKeyRepository
|
2022-09-11 12:18:04 +02:00 |
|
Alejandro Celaya
|
0e54ed691d
|
Created InitialApiKeyDelegatorTest
|
2022-09-11 12:11:39 +02:00 |
|
Alejandro Celaya
|
997289da02
|
Changed all public setUp methods in tests to be protected
|
2022-09-11 12:02:49 +02:00 |
|
Alejandro Celaya
|
c841e57db5
|
Reduced duplication in ApiKeyRepository
|
2022-09-11 11:59:49 +02:00 |
|
Alejandro Celaya
|
f5138385be
|
Created new env var to programatically provide an initial API key
|
2022-09-11 10:45:03 +02:00 |
|
Alejandro Celaya
|
e6ee4ceae2
|
Simplified mapping of TagInfo objects
|
2022-09-08 20:50:11 +02:00 |
|
Alejandro Celaya
|
b078c00492
|
Migrated to custom doctrine cli entry point, as the built-in is deprecated
|
2022-09-08 14:10:09 +02:00 |
|
Alejandro Celaya
|
e712efd008
|
Simplified exception
|
2022-09-06 21:56:18 +02:00 |
|
Alejandro Celaya
|
fe4329d730
|
Allowed trailing slashes support to be enabled for the short URLs route
|
2022-09-05 20:59:16 +02:00 |
|
Alejandro Celaya
|
846802c003
|
Slight improvements on RoadRunner config
|
2022-08-26 17:58:25 +02:00 |
|
Alejandro Celaya
|
e9ec32b3c3
|
Added support to dispatch async event listeners as RoadRunner jobs
|
2022-08-26 14:59:27 +02:00 |
|
Alejandro Celaya
|
a41835573b
|
Centralized prefix for problem detail types
|
2022-08-14 13:12:10 +02:00 |
|
Alejandro Celaya
|
2650cb89b5
|
Created BackwardsCompatibleProblemDetailsExceptionTest
|
2022-08-14 12:39:05 +02:00 |
|
Alejandro Celaya
|
4a122e0209
|
Added remaining API tests covering error type convertions
|
2022-08-14 10:51:12 +02:00 |
|
Alejandro Celaya
|
40bbcb3250
|
Added some API tests for v3 API errors
|
2022-08-13 17:49:00 +02:00 |
|
Alejandro Celaya
|
905f51fbd0
|
Added logic to properly map all existing errors from v3 to v2 in the API
|
2022-08-13 17:15:04 +02:00 |
|
Alejandro Celaya
|
cd4fe4362b
|
Created middleware to keep backwards compatibility on errors when using v1 and 2 of the API
|
2022-08-13 16:50:19 +02:00 |
|
Alejandro Celaya
|
709a4639b3
|
Fixed merge conflicts
|
2022-08-09 18:59:55 +02:00 |
|
Alejandro Celaya
|
a2f9742cfc
|
Fix loading of config options as env vars
|
2022-08-08 19:23:16 +02:00 |
|
Alejandro Celaya
|
a03f32f521
|
Updated to latest shlink dependencies
|
2022-08-07 09:36:51 +02:00 |
|
Alejandro Celaya
|
16bd368a58
|
Centralized how routes are configured to support multi-segment slugs
|
2022-08-06 09:30:13 +02:00 |
|
Alejandro Celaya
|
fc0d99be41
|
Ensure filtering of custom-slug is different depending on the multi-sement lugsfeature flag
|
2022-08-05 08:38:05 +02:00 |
|
Alejandro Celaya
|
efe655f880
|
Enhanced ExtraPathRedirectMiddleware so that it supports multi-segment slugs
|
2022-08-04 17:03:08 +02:00 |
|
Alejandro Celaya
|
3d5ddce621
|
Ensured multi-segment feature flag affects how append_extra_path is checked
|
2022-08-04 16:10:54 +02:00 |
|
Alejandro Celaya
|
619999d4f8
|
Added feature flag to enable/disable multi-segment support
|
2022-08-04 11:49:33 +02:00 |
|
Alejandro Celaya
|
7acf27dd38
|
Replaced usage of deprecated methods in DateRange class
|
2022-08-04 11:27:33 +02:00 |
|
Alejandro Celaya
|
ba517eeeb5
|
Moved routes config together, and ensure they are loaded last
|
2022-08-04 11:14:26 +02:00 |
|
Alejandro Celaya
|
fdd3e24967
|
Added support for multi-segment slugs
|
2022-08-03 19:32:59 +02:00 |
|
Alejandro Celaya
|
0a220bbc7a
|
Allowed slashes on custom slugs during short URL creation
|
2022-08-01 17:32:54 +02:00 |
|
Alejandro Celaya
|
e0e511f56d
|
Some improvements and comments in preparation of multi-segment slugs
|
2022-08-01 17:32:54 +02:00 |
|
Alejandro Celaya
|
f801f265ed
|
Added comments on places to change
|
2022-08-01 17:32:54 +02:00 |
|
Alejandro Celaya
|
b03f24d59a
|
Ensured no arguments are passed form locate visits command to download geolite command, is it does not expect any
|
2022-08-01 12:06:38 +02:00 |
|
Alejandro Celaya
|
8c2bdfba1c
|
Refactored match to ifs with eary returns
|
2022-07-28 10:51:48 +02:00 |
|
Alejandro Celaya
|
73ae754aa7
|
Created NotifyVisitToRedisTest
|
2022-07-28 10:36:52 +02:00 |
|
Alejandro Celaya
|
20a6e7e210
|
Created NotifyNewShortUrlToRedisTest
|
2022-07-28 10:33:26 +02:00 |
|
Alejandro Celaya
|
4cf433a994
|
Defined enum with supported remote systems
|
2022-07-28 10:25:55 +02:00 |
|
Alejandro Celaya
|
e36c4d397c
|
Moved duplicated code in visit listeners to an abstract class
|
2022-07-27 18:18:36 +02:00 |
|
Alejandro Celaya
|
26037327f9
|
Moved duplicated code in short URL listeners to an abstract class
|
2022-07-27 18:06:47 +02:00 |
|
Alejandro Celaya
|
da6aa1d697
|
Integrated PublishUpdatesGenerator in NotifyVisitToRabbitMq listener
|
2022-07-27 17:41:48 +02:00 |
|
Alejandro Celaya
|
dada6aa3d1
|
Integrated PublishUpdatesGenerator in NotifyVisitToRedis listener
|
2022-07-27 16:55:19 +02:00 |
|
Alejandro Celaya
|
fa5ebb1677
|
Integrated PublishUpdatesGenerator in NotifyNewShortUrlToRedis listener
|
2022-07-27 16:47:21 +02:00 |
|
Alejandro Celaya
|
f071df325d
|
Fixed NotifyNewShortUrlToRabbitMqTest
|
2022-07-27 10:26:18 +02:00 |
|
Alejandro Celaya
|
3c042c4011
|
Integrated PublishUpdatesGenerator in NotifyNewShortUrlToRabbitMq listener
|
2022-07-27 10:18:28 +02:00 |
|
Alejandro Celaya
|
7e8109caa3
|
Renamed MercureUpdatesGenerator to PublishingUpdatesGenerator to make it general purpose
|
2022-07-27 09:38:47 +02:00 |
|
Alejandro Celaya
|
d3add6d8e4
|
Added TODO
|
2022-07-26 12:18:58 +02:00 |
|
Alejandro Celaya
|
1b089749c0
|
Migrated mercure event listeners to use new publishing helper from shlink-common
|
2022-07-26 12:17:37 +02:00 |
|
Alejandro Celaya
|
791d6b7e57
|
Updated to latest common, with unified publishing API
|
2022-07-26 12:07:27 +02:00 |
|
Alejandro Celaya
|
db8a816524
|
Implemented redis pub/sub listeners
|
2022-07-26 10:17:50 +02:00 |
|
Alejandro Celaya
|
eff50ca202
|
Created new event listeners to send events to redis pub/sub
|
2022-07-25 18:23:13 +02:00 |
|
Alejandro Celaya
|
cd27a72982
|
Reduced duplicated code in NotifyNewShortUrlToRabbitMqTest
|
2022-07-25 12:31:32 +02:00 |
|
Alejandro Celaya
|
19b0f0d7dc
|
Extended NotifyVisitToRabbitMqTest covering legacy and non-legacy use-cases
|
2022-07-25 12:30:28 +02:00 |
|
Alejandro Celaya
|
6ce2049935
|
Added support for legacy and new publishing of visits in RabbitMQ
|
2022-07-25 12:08:22 +02:00 |
|
Alejandro Celaya
|
019bd4dec8
|
Created NotifyNewShortUrlToMercureTest
|
2022-07-25 09:30:25 +02:00 |
|
Alejandro Celaya
|
074bfe3db2
|
Updated MercureUpdatesGeneratorTest
|
2022-07-25 09:02:05 +02:00 |
|
Alejandro Celaya
|
34e72b42dc
|
Implemented listener to publish new short URL events in Mercure
|
2022-07-24 19:00:48 +02:00 |
|
Alejandro Celaya
|
97d24d76d8
|
Fixed new short URL event payload to RabbitMQ, and started to add logic for Mercure
|
2022-07-24 12:37:57 +02:00 |
|
Alejandro Celaya
|
4d1af867a4
|
Extracted real-time update topic names to an enum
|
2022-07-24 12:06:00 +02:00 |
|
Alejandro Celaya
|
fc6b4c12b2
|
Configured publishing of new short URL events in RabbitMQ
|
2022-07-24 11:07:20 +02:00 |
|
Alejandro Celaya
|
405c6de591
|
Created NotifyNewShortUrlToRabbitMq test
|
2022-07-24 10:53:42 +02:00 |
|
Alejandro Celaya
|
47bfa5fcc0
|
Simplified NotifyNewShortUrlToRabbitMq
|
2022-07-24 10:18:19 +02:00 |
|
Alejandro Celaya
|
67d91d5fc5
|
Migrated rabbit integration to RabbitMqPublishingHelper from shlink-common
|
2022-07-24 10:12:26 +02:00 |
|
Alejandro Celaya
|
f832c56adb
|
Moved Mercure and RabbitMq event listeners to their own subnamespaces
|
2022-07-21 20:07:28 +02:00 |
|
Alejandro Celaya
|
c4b30db82d
|
Added missing implements JsonSerializable on VisitLocation that got lost when VisitLocationInterface was removed
|
2022-07-18 20:23:27 +02:00 |
|
Alejandro Celaya
|
abd9f3c6be
|
Removed style checks disabling due to bug on php code sniffer
|
2022-07-04 17:12:38 +02:00 |
|
Alejandro Celaya
|
ed5816d464
|
Fixed merge conflicts
|
2022-06-04 11:43:02 +02:00 |
|
Alejandro Celaya
|
1ab492ce5b
|
Added missing test case
|
2022-06-04 11:22:10 +02:00 |
|
Alejandro Celaya
|
de30c6ad79
|
Fixed error when filtering short URLs by ALL tags and search term
|
2022-06-04 11:20:08 +02:00 |
|
Alejandro Celaya
|
4146835f6f
|
Created GetOrhanVisitsCommand test
|
2022-05-24 17:59:06 +02:00 |
|
Alejandro Celaya
|
5201ea4516
|
Created tests for short-url-visits commands
|
2022-05-24 17:54:44 +02:00 |
|
Alejandro Celaya
|
fba7b36245
|
Improved GetShortUrlVisitsCommand test
|
2022-05-24 17:44:12 +02:00 |
|
Alejandro Celaya
|
353ac0fc0c
|
Added logic to resolve extra columns on visits commands
|
2022-05-23 21:19:59 +02:00 |
|
Alejandro Celaya
|
00002b1e24
|
Renamed some visits commands
|
2022-05-23 20:47:37 +02:00 |
|
Alejandro Celaya
|
12b8100d89
|
Created visits commands for orphan, non-orphan and domain
|
2022-05-22 19:34:08 +02:00 |
|
Alejandro Celaya
|
72e56d271d
|
Created tags visits command, with abstract class wrapping common logic for visits lists commands
|
2022-05-22 19:22:29 +02:00 |
|
Alejandro Celaya
|
ec17eb3fbc
|
Ensured html entities are parsed when auto-resolving titles
|
2022-05-22 08:29:26 +02:00 |
|
Alejandro Celaya
|
358b600713
|
Fixed merge conflicts
|
2022-05-09 08:21:19 +02:00 |
|
Alejandro Celaya
|
18f656fed2
|
Changed logic when resolving the title of a URL, to ensure only html content is tried to be downloaded, and only until the title tag has been parsed
|
2022-05-01 11:48:20 +02:00 |
|
Alejandro Celaya
|
eea76999b2
|
Ensured URL validation is doe via HEAD method when the title does not need to be resolved
|
2022-05-01 09:51:15 +02:00 |
|
Alejandro Celaya
|
2400d1f265
|
Removed unused method
|
2022-04-23 19:07:36 +02:00 |
|
Alejandro Celaya
|
cdef430b0b
|
Set ShortUrlIdentifier constructor to private
|
2022-04-23 19:01:02 +02:00 |
|
Alejandro Celaya
|
6ada704bc3
|
Moved TagsMode to its own enum
|
2022-04-23 18:56:27 +02:00 |
|
Alejandro Celaya
|
e8f7daac6f
|
Converted Role constants to enum
|
2022-04-23 18:41:16 +02:00 |
|