{
+ setTeam({...team, personalNote: e.target.value});
+ }}
+ placeholder={I18n.t("teamDetails.personalNotesPlaceholder")}
+ multiline={true}
+ toolTip={I18n.t("newTeam.tooltips.personalNote")}
+ name={I18n.t("newTeam.personalNote")}/>
+
+
+ setTeam({...team, publicLinkDisabled: !team.publicLinkDisabled})}
+ readOnly={!team.viewable}
+ info={I18n.t("newTeam.publicLinkDisabled")}
+ toolTip={I18n.t("newTeam.tooltips.publicLinkDisabled")}
+ value={!team.publicLinkDisabled}/>
+
+
+
+ setTeam({...team, hideMembers: !team.hideMembers})}
+ info={I18n.t("newTeam.hideMembers")}
+ toolTip={I18n.t("newTeam.tooltips.hideMembers")}
+ value={team.hideMembers || false}/>
+
+
+
+
+
+ {visibilities.map((visibility, i) =>
+
)}
+
+ {!team.id && }
+
+ {!team.id && {
+ setTeam({...team, invitationMessage: e.target.value});
+ }}
+ id={"invitation-messsage"}
+ multiline={true}
+ placeholder={I18n.t("newTeam.placeholders.invitationMessage")}
+ name={I18n.t("newTeam.invitationMessage")}/>}
+
+
+
+
+ );
+ }
-
-
-
- {visibilities.map((visibility, i) =>
-
!viewableActive(visibility.name) && setTeam({
- ...team,
- viewable: !team.viewable,
- publicLinkDisabled: team.viewable || team.publicLinkDisabled
- })}>
-
-
- {I18n.t(`newTeam.${visibility.name}`)}
-
- {I18n.t(`newTeam.${visibility.name}Info`)}
- )}
-
-
- {!team.id && }
-
- {!team.id && {
- setTeam({...team, invitationMessage: e.target.value});
- }}
- id={"invitation-messsage"}
- multiline={true}
- placeholder={I18n.t("newTeam.placeholders.invitationMessage")}
- name={I18n.t("newTeam.invitationMessage")}/>}
-
-
- navigate(team.id ? `/team-details/${team.id}` : "/my-teams")}
- txt={I18n.t("forms.cancel")}/>
-
-
-
-
+ return (
+ <>
+
+
+
+
+ {I18n.t(`breadcrumbs.${team.id ? "editTeam" : "newTeam"}`, {name: team.name})}
+
+ {user.featureToggles.inviteMigrationOn && renderInviteMigration()}
+
+ {!user.featureToggles.inviteMigrationOn && renderTeamForm()}
>
);
diff --git a/teams-gui/src/pages/NewTeam.scss b/teams-gui/src/pages/NewTeam.scss
index 28aa252f..639ba247 100644
--- a/teams-gui/src/pages/NewTeam.scss
+++ b/teams-gui/src/pages/NewTeam.scss
@@ -103,3 +103,28 @@ form.new-team {
}
}
}
+
+.invite-migration-on-container {
+ display: flex;
+ margin-top: 40px;
+ background-color: #e9ecef;
+
+ .invite-migration-on {
+ max-width: 1086px;
+ width: 100%;
+ margin: 0 auto;
+ display: flex;
+ align-items: center;
+
+ padding: 20px;
+
+
+ svg {
+ color: darkred;
+ width: 44px;
+ height: auto;
+ margin-right: 15px;
+ }
+ }
+
+}
diff --git a/teams-server/pom.xml b/teams-server/pom.xml
index e0e9a24b..3666207b 100644
--- a/teams-server/pom.xml
+++ b/teams-server/pom.xml
@@ -6,7 +6,7 @@
org.openconext
teams
- 9.2.0
+ 9.3.0-SNAPSHOT
../pom.xml
diff --git a/teams-server/src/main/java/teams/domain/Feature.java b/teams-server/src/main/java/teams/domain/Feature.java
index d3839dc0..0da738c5 100644
--- a/teams-server/src/main/java/teams/domain/Feature.java
+++ b/teams-server/src/main/java/teams/domain/Feature.java
@@ -1,5 +1,5 @@
package teams.domain;
public enum Feature {
-
+ inviteMigrationOn
}
diff --git a/teams-server/src/main/java/teams/domain/FederatedUser.java b/teams-server/src/main/java/teams/domain/FederatedUser.java
index ed50d429..ea70da97 100644
--- a/teams-server/src/main/java/teams/domain/FederatedUser.java
+++ b/teams-server/src/main/java/teams/domain/FederatedUser.java
@@ -16,9 +16,9 @@
public class FederatedUser extends User {
private final Map config;
+ private final String productName;
+ private final Person person;
private String groupNameContext;
- private String productName;
- private Person person;
private List externalTeams;
private Map featureToggles;
diff --git a/teams-server/src/main/java/teams/security/SecurityConfig.java b/teams-server/src/main/java/teams/security/SecurityConfig.java
index cb66ad12..b5c8c425 100644
--- a/teams-server/src/main/java/teams/security/SecurityConfig.java
+++ b/teams-server/src/main/java/teams/security/SecurityConfig.java
@@ -232,6 +232,9 @@ public static class SecurityConfigurationAdapter extends WebSecurityConfigurerAd
@Value("${config.supported_language_codes}")
private String supportedLanguageCodes;
+ @Value("${features.invite-migration-on}")
+ private boolean inviteMigrationOn;
+
@Override
protected void configure(AuthenticationManagerBuilder auth) {
PreAuthenticatedAuthenticationProvider authenticationProvider = new PreAuthenticatedAuthenticationProvider();
@@ -264,8 +267,7 @@ public Map config() {
}
private Map featureToggles() {
- Map toggles = new HashMap<>();
- return toggles;
+ return Map.of(Feature.inviteMigrationOn, inviteMigrationOn);
}
@Override
diff --git a/teams-server/src/main/resources/application.yml b/teams-server/src/main/resources/application.yml
index 7e6d037e..7385189c 100644
--- a/teams-server/src/main/resources/application.yml
+++ b/teams-server/src/main/resources/application.yml
@@ -36,6 +36,9 @@ config:
sponsor: SURF
supported_language_codes: en,nl
+features:
+ invite-migration-on: true
+
security:
user:
name: user
diff --git a/teams-server/src/main/resources/db/migration/mysql/V42__delete_sessions_after_user_change.sql b/teams-server/src/main/resources/db/migration/mysql/V42__delete_sessions_after_user_change.sql
new file mode 100644
index 00000000..27cbcf93
--- /dev/null
+++ b/teams-server/src/main/resources/db/migration/mysql/V42__delete_sessions_after_user_change.sql
@@ -0,0 +1,2 @@
+DROP TABLE IF EXISTS SPRING_SESSION_ATTRIBUTES;
+DROP TABLE IF EXISTS SPRING_SESSION;
\ No newline at end of file