Skip to content

Commit 36b2f11

Browse files
committed
Update login flow and context to only show warning for hidden SSO
1 parent 957e41d commit 36b2f11

6 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/main/java/io/cos/cas/osf/authentication/support/OsfInstitutionUtils.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ public static boolean validateInstitutionForLogin(final JpaOsfDao jpaOsfDao, fin
3131
&& institution.getSsoAvailability() != SsoAvailability.UNAVAILABLE;
3232
}
3333

34+
public static boolean isInstitutionSsoAvailabilityHidden(final JpaOsfDao jpaOsfDao, final String id) {
35+
final OsfInstitution institution = jpaOsfDao.findOneInstitutionById(id);
36+
return institution != null
37+
&& institution.getDelegationProtocol() != null
38+
&& institution.getSsoAvailability() == SsoAvailability.HIDDEN;
39+
}
40+
3441
public static String getInstitutionSupportEmail(final JpaOsfDao jpaOsfDao, final String id) {
3542
final OsfInstitution institution = jpaOsfDao.findOneInstitutionById(id);
3643
return institution != null ? institution.getSupportEmail() : null;

src/main/java/io/cos/cas/osf/web/flow/login/OsfAbstractLoginPreparationAction.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public abstract class OsfAbstractLoginPreparationAction extends AbstractAuthenti
3737

3838
protected static final String PARAMETER_INSTITUTION_ID = "institutionId";
3939

40+
protected static final String PARAMETER_HIDDEN_SSO_AVAILABILITY = "hiddenSsoAvailability";
41+
4042
protected static final String PARAMETER_ORCID_CLIENT_TYPE = "orcid";
4143

4244
protected static final String PARAMETER_CAS_CLIENT_TYPE = "cas";

src/main/java/io/cos/cas/osf/web/flow/login/OsfDefaultLoginPreparationAction.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ protected Event doExecute(RequestContext context) {
7070
loginContext = new OsfCasLoginContext(
7171
institutionLogin,
7272
institutionId,
73+
Boolean.FALSE,
7374
StringUtils.EMPTY,
7475
unsupportedInstitutionLogin,
7576
orcidRedirect,
@@ -80,6 +81,7 @@ protected Event doExecute(RequestContext context) {
8081
} else {
8182
loginContext.setInstitutionLogin(institutionLogin);
8283
loginContext.setInstitutionId(institutionId);
84+
loginContext.setHiddenSsoAvailability(false);
8385
loginContext.setInstitutionSupportEmail(StringUtils.EMPTY);
8486
loginContext.setUnsupportedInstitutionLogin(unsupportedInstitutionLogin);
8587
loginContext.setOrcidLoginUrl(orcidLoginUrl);

src/main/java/io/cos/cas/osf/web/flow/login/OsfInstitutionLoginPreparationAction.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ protected Event doExecute(RequestContext context) {
8181
context.getFlowScope().put(PARAMETER_LOGIN_CONTEXT, loginContext);
8282
institutionId = null;
8383
} else {
84+
if (OsfInstitutionUtils.isInstitutionSsoAvailabilityHidden(jpaOsfDao, institutionId)) {
85+
loginContext.setHiddenSsoAvailability(true);
86+
}
8487
final String institutionSupportEmail = OsfInstitutionUtils.getInstitutionSupportEmail(jpaOsfDao, institutionId);
8588
if (institutionSupportEmail != null) {
8689
loginContext.setInstitutionSupportEmail(institutionSupportEmail);

src/main/java/io/cos/cas/osf/web/support/OsfCasLoginContext.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public class OsfCasLoginContext implements Serializable {
3030

3131
private String institutionId;
3232

33+
private boolean hiddenSsoAvailability;
34+
3335
private String institutionSupportEmail;
3436

3537
private boolean unsupportedInstitutionLogin;

src/main/resources/templates/casInstitutionLoginView.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ <h1 th:utext="#{screen.institutionlogin.heading}"></h1>
3232
</section>
3333

3434
<section class="text-with-mdi text-danger">
35-
<p th:if="${osfCasLoginContext.institutionId}" th:utext="#{screen.institutionlogin.link.hidden}"></p>
35+
<p th:if="${osfCasLoginContext.institutionId != null AND osfCasLoginContext.hiddenSsoAvailability}" th:utext="#{screen.institutionlogin.link.hidden}"></p>
3636
</section>
3737

3838
<section class="text-with-mdi">

0 commit comments

Comments
 (0)