Show error message when login fails
authorVásáry Dániel <vasary@elgekko.net>
Sat, 17 Feb 2024 23:34:37 +0000 (00:34 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Sat, 17 Feb 2024 23:34:37 +0000 (00:34 +0100)
lis-ui/src/main/java/hu/user/lis/ui/auth/LdapUserDetailsContextMapper.java
lis-ui/src/main/java/hu/user/lis/ui/session/SessionSettings.java
lis-ui/src/main/java/hu/user/lis/ui/view/LoginViewModel.java
lis-ui/src/main/resources/web/editor/project/incoming-invoices.zul
lis-ui/src/main/resources/web/editor/project/outgoing-invoices.zul
lis-ui/src/main/resources/web/editor/project/treasuries.zul
lis-ui/src/main/resources/web/login.zul

index 2cb9dfebb512d690190093ec0493fde1b60091e6..75497e84348817cb5dc0db28fcda0e4ffebe7ba4 100644 (file)
@@ -1,6 +1,7 @@
 package hu.user.lis.ui.auth;
 
 import hu.user.lis.db.Associate;
+import hu.user.lis.db.Vat;
 import hu.user.lis.db.repository.AssociateRepository;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,6 +45,8 @@ public class LdapUserDetailsContextMapper extends LdapUserDetailsMapper implemen
                     .name(ctx.getObjectAttribute("displayname").toString())
                     .active(true)
                     .remotelyAuthenticated(true)
+                    .monthlyCost(0)
+                    .monthlyVat(Vat.PERCENT_0)
                     .build();
 //            ctx.getObjectAttribute("mail")
             associateRepository.save(associate);
index c2be049f737b2a65c384847fe6cada5624ce41ef..92d28f92b8426a0d9db47ac503285c4b50421371 100644 (file)
@@ -29,6 +29,10 @@ public class SessionSettings {
         return (String) Executions.getCurrent().getAttribute("javax.servlet.forward.servlet_path");
     }
 
+    public RuntimeException getLastSecurityException() {
+        return (RuntimeException) getNativeSession().getAttribute("SPRING_SECURITY_LAST_EXCEPTION");
+    }
+
     public String getSessionId() {
         return getNativeSession().getId();
     }
index d8c8e312a32ce176a25508e9364e53ceaf282f50..c57966feab6ce8d61391c737008f3e6ed18e91e5 100644 (file)
@@ -2,23 +2,46 @@ package hu.user.lis.ui.view;
 
 import hu.user.lis.ui.properties.ApplicationUIProperties;
 import hu.user.lis.ui.properties.BuildInformation;
+import hu.user.lis.ui.session.SessionSettings;
 import lombok.Getter;
 import lombok.extern.log4j.Log4j2;
+import org.zkoss.bind.annotation.Init;
+import org.zkoss.bind.annotation.NotifyChange;
+import org.zkoss.lang.Strings;
 import org.zkoss.zk.ui.select.annotation.VariableResolver;
 import org.zkoss.zk.ui.select.annotation.WireVariable;
 
+import java.util.Objects;
+
 @Log4j2
 @VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
 @Getter
 public class LoginViewModel {
 
     @WireVariable
-    BuildInformation buildInformation;
+    private BuildInformation buildInformation;
+
+    @WireVariable
+    private ApplicationUIProperties applicationUIProperties;
 
     @WireVariable
-    ApplicationUIProperties applicationUIProperties;
+    private SessionSettings sessionSettings;
+
+    private String message;
 
     public LoginViewModel() {
 
     }
+
+    @Init
+    @NotifyChange("message")
+    public void init() {
+        RuntimeException ex = sessionSettings.getLastSecurityException();
+        if (Objects.nonNull(ex)) {
+            message = "Hibás felhasználó név vagy jelszó!";
+            log.warn(ex.getMessage());
+        } else {
+            message = Strings.EMPTY;
+        }
+    }
 }
index 375cdb40f756945b80e23c4bd3fc5985e760cf80..45ba6de074d5fa31b038038d065d3c348021fa54 100644 (file)
@@ -17,7 +17,6 @@
                 </toolbar>
                 <listbox model="@load(vm.formDocument.incomingInvoices)"
                          selectedItem="@bind(vm.selectedIncomingInvoice)"
-                         onDoubleClick="@command('onEditIncoming')"
                          forward="onOK=submit.onClick, onCancel=cancel.onClick">
                     <listhead sizable="true">
                         <listheader width="30px" label="Terv" sort="auto(planned)" align="left"/>
@@ -32,7 +31,7 @@
                                     align="left"/>
                     </listhead>
                     <template name="model">
-                        <listitem>
+                        <listitem onDoubleClick="@command('onEditIncoming')">
                             <listcell>
                                 <a iconSclass="z-icon-map-marker" visible="@load(each.planned)"
                                    style="@load(each.planned ? 'color: gray' : 'color: black')"/>
index 2a48afd41d751d1308d000a1ab930114ea74adce..b7e50f9d9a67a8373487eb54d0c8f5fc6948ce3f 100644 (file)
@@ -17,7 +17,6 @@
                 </toolbar>
                 <listbox model="@load(vm.formDocument.outgoingInvoices)"
                          selectedItem="@bind(vm.selectedOutgoingInvoice)"
-                         onDoubleClick="@command('onEditOutgoing')"
                          forward="onOK=submit.onClick, onCancel=cancel.onClick">
                     <listhead sizable="true">
                         <listheader width="30px" label="Terv" sort="auto(planned)" align="left"/>
@@ -32,7 +31,7 @@
                                     align="left"/>
                     </listhead>
                     <template name="model">
-                        <listitem>
+                        <listitem onDoubleClick="@command('onEditOutgoing')">
                             <listcell>
                                 <a iconSclass="z-icon-map-marker" visible="@load(each.planned)"
                                    style="@load(each.planned ? 'color: gray' : 'color: black')"/>
index 15907f8d3c08720062ae81a842aa5189b1c06b51..4f37703d9d179b540ecbdfe5af47c0168f79905d 100644 (file)
@@ -18,7 +18,6 @@
 
                 <listbox model="@load(vm.formDocument.treasuries)"
                          selectedItem="@bind(vm.selectedTreasury)"
-                         onDoubleClick="@command('onEditTreasury')"
                          forward="onOK=submit.onClick, onCancel=cancel.onClick">
                     <auxhead>
                         <auxheader label="Eladás" colspan="2"/>
@@ -38,7 +37,7 @@
                         <listheader label="Értéknap" sort="auto(valueDate)" align="left"/>
                     </listhead>
                     <template name="model">
-                        <listitem>
+                        <listitem onDoubleClick="@command('onEditTreasury')">
                             <listcell
                                     label="@load(each.sellAmount) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"/>
                             <listcell label="@load(each.sellCurrency)"/>
index 4d9f26e0ea6eea0c5338087bffcbc91b91d48225..65e7f3d2fbcd82d20dcd7934ed3074251c9c7b4b 100644 (file)
                         <textbox type="password" name="password" hflex="true"
                                  value="@load(vm.applicationUIProperties.password)"/>
                     </row>
+                    <row>
+                        <cell colspan="2">
+                            <label style="color: red" value="@load(vm.message)"/>
+                        </cell>
+                    </row>
                     <row spans="2" align="right">
                         <hlayout>
                             <button type="submit" label="Belépés"/>