44import invite .cron .ResourceCleaner ;
55import invite .cron .RoleExpirationNotifier ;
66import invite .exception .NotAllowedException ;
7+ import invite .manage .EntityType ;
78import invite .manage .Manage ;
9+ import invite .model .Application ;
10+ import invite .model .ApplicationUsage ;
811import invite .model .Role ;
912import invite .model .User ;
1013import invite .model .UserRole ;
14+ import invite .repository .ApplicationUsageRepository ;
1115import invite .repository .RoleRepository ;
1216import invite .repository .UserRoleRepository ;
1317import invite .security .UserPermissions ;
2024import org .springframework .http .MediaType ;
2125import org .springframework .http .ResponseEntity ;
2226import org .springframework .transaction .annotation .Transactional ;
27+ import org .springframework .util .CollectionUtils ;
28+ import org .springframework .util .StringUtils ;
2329import org .springframework .web .bind .annotation .*;
2430
2531import java .io .Serializable ;
@@ -46,21 +52,24 @@ public class SystemController {
4652 private final Manage manage ;
4753 private final PerformanceSeed performanceSeed ;
4854 private final Config config ;
55+ private final ApplicationUsageRepository applicationUsageRepository ;
4956
5057 public SystemController (ResourceCleaner resourceCleaner ,
5158 RoleExpirationNotifier roleExpirationNotifier ,
5259 RoleRepository roleRepository ,
5360 UserRoleRepository userRoleRepository ,
5461 Manage manage ,
5562 PerformanceSeed performanceSeed ,
56- Config config ) {
63+ Config config ,
64+ ApplicationUsageRepository applicationUsageRepository ) {
5765 this .resourceCleaner = resourceCleaner ;
5866 this .roleExpirationNotifier = roleExpirationNotifier ;
5967 this .roleRepository = roleRepository ;
6068 this .userRoleRepository = userRoleRepository ;
6169 this .manage = manage ;
6270 this .performanceSeed = performanceSeed ;
6371 this .config = config ;
72+ this .applicationUsageRepository = applicationUsageRepository ;
6473 }
6574
6675 @ GetMapping ("/cron/cleanup" )
@@ -111,4 +120,27 @@ public ResponseEntity<Map<String, Object>> performanceSeed(@Parameter(hidden = t
111120 return ResponseEntity .ok (performanceSeed .go (numberOfRole , numberOfUsers ));
112121 }
113122
123+ @ GetMapping ("/landing-page-fix" )
124+ public ResponseEntity <Map <String , Integer >> landingPageFix (@ Parameter (hidden = true ) User user ) {
125+ LOG .debug (String .format ("landing-page-fix for user %s" , user .getEduPersonPrincipalName ()));
126+ UserPermissions .assertSuperUser (user );
127+
128+ List <ApplicationUsage > applicationUsages = applicationUsageRepository .findByLandingPageIsNull ();
129+ applicationUsages .stream ()
130+ .forEach (applicationUsage -> {
131+ Application application = applicationUsage .getApplication ();
132+ Map <String , Object > provider = manage .providerById (application .getManageType (), application .getManageId ());
133+ if (!CollectionUtils .isEmpty (provider )) {
134+ String url = (String ) provider .get ("url" );
135+ if (StringUtils .hasText (url )) {
136+ applicationUsage .setLandingPage (url );
137+ LOG .debug (String .format ("Saving applicationUsage with url %s" , url ));
138+ applicationUsageRepository .save (applicationUsage );
139+ }
140+ }
141+ });
142+
143+ return Results .okResult ();
144+ }
145+
114146}
0 commit comments