diff --git a/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml b/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml index 94acbcd30..2afd7ee37 100644 --- a/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml +++ b/ccm-bundle-devel-wildfly-web/src/main/webapp/WEB-INF/web.xml @@ -11,6 +11,10 @@ ccm.develmode true + + ccm.distribution + libreccm + diff --git a/ccm-core/src/main/java/org/libreccm/admin/ui/AdminView.java b/ccm-core/src/main/java/org/libreccm/admin/ui/AdminView.java index df1d0f02d..d78300700 100644 --- a/ccm-core/src/main/java/org/libreccm/admin/ui/AdminView.java +++ b/ccm-core/src/main/java/org/libreccm/admin/ui/AdminView.java @@ -38,6 +38,7 @@ import org.libreccm.admin.ui.usersgroupsroles.UsersGroupsRoles; import org.libreccm.admin.ui.usersgroupsroles.UsersTableDataProvider; import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.security.PermissionChecker; +import org.libreccm.security.UserManager; import org.libreccm.security.UserRepository; import java.util.ResourceBundle; @@ -58,11 +59,6 @@ public class AdminView extends CustomComponent implements View { public static final String VIEWNAME = "admin"; -// private static final String COL_USER_NAME = "username"; -// private static final String COL_GIVEN_NAME = "given_name"; -// private static final String COL_FAMILY_NAME = "family_name"; -// private static final String COL_EMAIL = "email"; -// private static final String COL_BANNED = "banned"; @Inject private ServletContext servletContext; @@ -78,6 +74,12 @@ public class AdminView extends CustomComponent implements View { @Inject private GlobalizationHelper globalizationHelper; + @Inject + private UserRepository userRepository; + + @Inject + private UserManager userManager; + @Inject private UsersTableDataProvider usersTableDataProvider; @@ -152,9 +154,27 @@ public class AdminView extends CustomComponent implements View { header.addComponent(headerInfoLine, 3, 0, 4, 0); header.setComponentAlignment(headerInfoLine, Alignment.TOP_RIGHT); - final Image logo = new Image( - null, - new ClassResource("/themes/libreccm-default/images/libreccm.png")); + final String logoPath; + switch (servletContext.getInitParameter("ccm.distribution") + .toLowerCase()) { + case "libreccm": + logoPath = "/themes/libreccm-default/images/libreccm.png"; + break; + case "librecms": + logoPath = "/themes/libreccm-default/images/librecms.png"; + break; + case "aplaws": + logoPath = "/themes/libreccm-default/images/aplaws.png"; + break; + case "scientificcms": + logoPath = "/themes/libreccm-default/images/scientificcms.png"; + break; + default: + logoPath = "/themes/libreccm-default/images/libreccm.png"; + break; + } + + final Image logo = new Image(null, new ClassResource(logoPath)); logo.setId("libreccm-logo"); logo.addStyleName("libreccm-logo"); header.addComponent(logo, 0, 0); @@ -196,5 +216,13 @@ public class AdminView extends CustomComponent implements View { protected JpqlConsoleController getJpqlConsoleController() { return jpqlConsoleController; } + + public UserRepository getUserRepository() { + return userRepo; + } + + public UserManager getUserManager() { + return userManager; + } } diff --git a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java index 6529fae66..2559f3350 100644 --- a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java +++ b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UserEditor.java @@ -23,6 +23,7 @@ import com.arsdigita.ui.admin.AdminUiConstants; import com.vaadin.data.provider.AbstractDataProvider; import com.vaadin.data.provider.Query; import com.vaadin.ui.Button; +import com.vaadin.ui.CheckBox; import com.vaadin.ui.FormLayout; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.ItemCaptionGenerator; @@ -35,6 +36,8 @@ import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; import org.libreccm.core.UnexpectedErrorException; import org.libreccm.security.User; +import org.libreccm.security.UserManager; +import org.libreccm.security.UserRepository; import java.util.Arrays; import java.util.ResourceBundle; @@ -56,6 +59,8 @@ public class UserEditor extends Window { } private final User user; + private final UserRepository userRepo; + private final UserManager userManager; private TextField userName; private TextField familyName; @@ -64,16 +69,26 @@ public class UserEditor extends Window { private RadioButtonGroup passwordOptions; private PasswordField password; private PasswordField passwordConfirmation; + private CheckBox passwordResetRequired; + private CheckBox banned; - public UserEditor() { + public UserEditor(final UserRepository userRepo, + final UserManager userManager) { + user = null; + this.userRepo = userRepo; + this.userManager = userManager; addWidgets(); } - public UserEditor(final User user) { + public UserEditor(final User user, + final UserRepository userRepo, + final UserManager userManager) { this.user = user; + this.userRepo = userRepo; + this.userManager = userManager; addWidgets(); } @@ -168,6 +183,17 @@ public class UserEditor extends Window { passwordOptions.setValue(PasswordOptions.GENERATE_AND_SEND); + passwordResetRequired = new CheckBox(bundle + .getString("ui.admin.user_edit.password_reset_required.label")); + + banned = new CheckBox(bundle + .getString("ui.admin.user_edit.banned.label")); + + if (user == null) { + banned.setVisible(false); + banned.setEnabled(false); + } + final Button submit = new Button(); if (user == null) { submit.setCaption(bundle.getString( @@ -186,7 +212,9 @@ public class UserEditor extends Window { emailAddress, passwordOptions, password, - passwordConfirmation); + passwordConfirmation, + passwordResetRequired, + banned); final VerticalLayout layout = new VerticalLayout(formLayout, buttons); diff --git a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java index ef30ab9bf..10d985e85 100644 --- a/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java +++ b/ccm-core/src/main/java/org/libreccm/admin/ui/usersgroupsroles/UsersGroupsRoles.java @@ -34,7 +34,6 @@ import com.vaadin.ui.themes.ValoTheme; import org.libreccm.admin.ui.AdminView; import org.libreccm.security.User; -import java.util.Locale; import java.util.ResourceBundle; /** @@ -51,18 +50,18 @@ public class UsersGroupsRoles extends CustomComponent { private static final String COL_EMAIL = "email"; private static final String COL_BANNED = "banned"; private static final String COL_PASSWORD_RESET_REQUIRED - = "password_reset_required"; + = "password_reset_required"; private static final String COL_EDIT = "edit"; private static final String COL_DELETE = "delete"; private final AdminView view; private final TabSheet tabSheet; - + private final Grid usersTable; private final TextField userNameFilter; private final Button clearFiltersButton; - + private UsersTableDataProvider usersTableDataProvider; public UsersGroupsRoles(final AdminView view) { @@ -117,8 +116,10 @@ public class UsersGroupsRoles extends CustomComponent { usersTable .addColumn(user -> bundle.getString("ui.admin.users.table.edit"), new ButtonRenderer<>(event -> { - final UserEditor editor = new UserEditor(event - .getItem()); + final UserEditor editor = new UserEditor( + event.getItem(), + view.getUserRepository(), + view.getUserManager()); editor.center(); UI.getCurrent().addWindow(editor); })) @@ -126,8 +127,10 @@ public class UsersGroupsRoles extends CustomComponent { usersTable .addColumn(user -> bundle.getString("ui.admin.users.table.delete"), new ButtonRenderer<>(event -> { - final UserEditor editor = new UserEditor(event - .getItem()); + final UserEditor editor = new UserEditor( + event.getItem(), + view.getUserRepository(), + view.getUserManager()); editor.center(); UI.getCurrent().addWindow(editor); })) @@ -193,12 +196,12 @@ public class UsersGroupsRoles extends CustomComponent { .getColumn(COL_PASSWORD_RESET_REQUIRED) .setCaption(bundle.getString( "ui.admin.users.table.password_reset_required")); - + userNameFilter.setPlaceholder(bundle .getString("ui.admin.users.table.filter.screenname.placeholder")); userNameFilter.setDescription(bundle .getString("ui.admin.users.table.filter.screenname.description")); - + clearFiltersButton.setCaption(bundle .getString("ui.admin.users.table.filter.clear")); diff --git a/ccm-core/src/main/resources/VAADIN/themes/ccm-core/ccm-core.scss b/ccm-core/src/main/resources/VAADIN/themes/ccm-core/ccm-core.scss index ba824440b..4bdea0730 100644 --- a/ccm-core/src/main/resources/VAADIN/themes/ccm-core/ccm-core.scss +++ b/ccm-core/src/main/resources/VAADIN/themes/ccm-core/ccm-core.scss @@ -7,11 +7,25 @@ @include valo; .libreccm-header { - border-bottom: 5px solid #0f0; - .libreccm-logo { max-height: 100px; } } + + .libreccm { + background-color: #71ac52; + } + + .librecms { + background-color: #54ac9c; + } + + .aplaws { + background-color: #5462ad; + } + + .scientificcms { + background-color: #ad5353; + } } diff --git a/ccm-core/src/main/resources/VAADIN/themes/ccm-core/styles.css b/ccm-core/src/main/resources/VAADIN/themes/ccm-core/styles.css index befde7e91..ec858dde4 100644 --- a/ccm-core/src/main/resources/VAADIN/themes/ccm-core/styles.css +++ b/ccm-core/src/main/resources/VAADIN/themes/ccm-core/styles.css @@ -12502,10 +12502,22 @@ h1.no-margin, .v-label-h1.no-margin, h2.no-margin, .v-label-h2.no-margin, h3.no- overflow: hidden; } -.libreccm-header { - border-bottom: 5px solid #0f0; -} - .libreccm-header .libreccm-logo { max-height: 100px; +} + +.libreccm { + background-color: #71ac52; +} + +.librecms { + background-color: #54ac9c; +} + +.aplaws { + background-color: #5462ad; +} + +.scientificcms { + background-color: #ad5353; } \ No newline at end of file