Commit Graph
91 Commits
Author SHA1 Message Date
Sohaib Baig f1cabb1d18 Merge branch 'bug6187' of github.com:SAP/sailing-analytics into bug6187 2026-03-24 09:56:53 +01:00
Sohaib Baig 0f673f3a6c updateUserProperty documentation, email opt out flag in user mgmt table 2026-03-24 09:54:20 +01:00
Sohaib Baig 23f1cd624b SuggestedMultiSelection decoupled from "notification" or checkboxes
Enabled boat classes widget again, fully functional.
2026-03-23 14:55:08 +01:00
Sohaib Baig c6f0b8f6b1 code cleanup, renaming for clarity 2026-03-23 13:40:58 +01:00
Sohaib Baig e54655771c wip: decoupling of checkbox tile from suggested multi selection
correct behavior for multi selection and filter achieved
remaining includes toast notification handling for
2026-03-20 13:29:02 +01:00
Sohaib Baig 8a7e6d3b39 doc: updateUserProperties(...) passing null = no update for that param
SecurityService.updateUserProperties(...) was changed in this branch. So
arguments could be passed null and they would not be set to null
anymore, but would only be ignored in the update transaction. This was
added to the documentation to the method plus the respective
UpdateUserPropertiesOperation class
2026-03-06 16:20:21 +01:00
Sohaib Baig 893a000e85 fix: removed "subscription", concatenation from email error message
A client facing message was formed using string concatenation. This was
replaced with a string pulled wholly from StringMessages for
localization correctness.

The same message used the keyword "subscription" with regard to email
subscriptions. This could be confused with subscriptions under the
payment model for advanced features. This was replaced with a "will
receive" / "will not receive" semantic binary in the context.
2026-03-06 16:05:14 +01:00
Sohaib Baig 05a73d5d86 revert changes to .launch files 2026-03-06 15:07:34 +01:00
Sohaib Baig e695c7ec70 undo changes to .launch file
these were artifacts from my personal Mac dev environment
2026-03-06 14:50:46 +01:00
Sohaib Baig 88df14b639 Undo changes to launch config
The changes were not supposed to be added. They were an artifact of my specific Mac development environment
2026-03-06 14:38:41 +01:00
Sohaib Baig d6f88f267e Merge branch 'main' into bug6187 2026-03-06 08:02:08 +01:00
Sohaib Baig 67e5d8b3f1 complete previous commit 2026-03-06 07:24:41 +01:00
Sohaib Baig b9baee6289 fix earlier botched commit
The following commit was not checked properly. It was assumed to be a
merge with the main branch, but was actually a merge with a very stale
main branch with many conflicts that were then resolved manually.
1373405280
2026-03-05 17:21:54 +01:00
Sohaib Baig 9899f9e95b Merge branch 'main' into bug6187 2026-03-05 14:39:37 +01:00
Sohaib Baig ca0dc8b7b0 Merge branch 'main' into bug6187 2026-02-09 11:56:04 +01:00
Sohaib Baig c77f7b3d64 fix: flag missing from user record
migration method added which adds flag value = false for
DID_OPT_OUT_OF_FEATURE_AND_COMMUNITY_EMAILS in method that ran before
the failing test
2026-02-08 19:58:55 +01:00
Sohaib Baig b537d4a0a0 add "Did opt out of Feature and Community Emails" filter on data mining
Accomplished by adding user flag as a dimension in HasUserContext
2026-02-05 11:49:55 +01:00
Sohaib Baig d38bdcf2e8 Merge branch 'main' into bug6187 2026-02-02 13:32:37 +01:00
Sohaib Baig a5d48b64e6 ui: added loading overlay for checkbox
Progress indicator position fixed: checkbox tile was using GSS of
SuggestedMultiSelection before. This enforced rigid CSS with the
!important flag necessary for its more complex functionality that was
making logic for overlay stack unnecessarily complex. The necessary
styling was thus extracted out into CheckboxTile.gss

Toast notifications not showing above footer fixed: this was due to z
index of footer being 1000 and that of Notification being 100. I brought
up notification.css z-index to 1001.
2026-01-29 15:01:58 +01:00
Sohaib Baig 6d9b48ef74 checkbox tile now works to set email subscription flag
1. updateUserProperties: if null dont update that specific property.
this behavior now applies to each updatabale property in the security
service method.
2. checkbox tile onToggle async loading view is now triggered with
callbacks instead of expecting onToggle to use blocking asynchrony
2026-01-29 09:40:57 +01:00
Sohaib Baig a2621fa3cb wip: miscellaneous box added under favorites/notifications
toggle blocking and loading indicator are remaining. then connecting the
backend is expected
2026-01-20 15:10:29 +01:00
Sohaib Baig 6ad5f29e1e rename: marketing emails to feature and community updates 2026-01-20 10:59:15 +01:00
Sohaib Baig 27d4abc9c1 earlier merge did not include file 2026-01-20 10:10:52 +01:00
Sohaib Baig 1373405280 Merge branch 'main' into bug6187 2026-01-20 10:10:20 +01:00
Sohaib Baig 961d8a9af3 feat: updateUserProperties' email parameter can be null
If null is passed to email subscription flag, nothing will be changed.
Previously, it was the case that null could not be passed, behaviorally
the same value as before would have to be reapplied in expected use
cases which could cause data consistency issues
2026-01-20 09:06:20 +01:00
Sohaib Baig cc00c99c18 Revert "merge main"
This reverts commit a722f6c687, reversing
changes made to ebd48be8aa.
2026-01-16 13:09:37 +01:00
Sohaib Baig a722f6c687 merge main 2026-01-16 10:37:24 +01:00
Sohaib Baig ebd48be8aa remove marketing email checkbox from UserDetails screen 2025-12-11 12:12:47 +01:00
Sohaib Baig 14ab625eb5 doc: release notes for bug6148 2025-12-02 15:29:55 +01:00
Sohaib Baig fd6e34fdb2 Updated onboarding.md (markdown) 2025-12-02 10:15:39 +00:00
Sohaib Baig 7217f1acae Updated onboarding.md (markdown) 2025-12-02 10:13:54 +00:00
Sohaib Baig 544b65e58b Updated onboarding.md (markdown) 2025-12-01 21:00:05 +00:00
Sohaib Baig 426ead23ff Merge branch 'main' into translation 2025-12-01 21:45:30 +01:00
Sohaib Baig bbd1f10f3e Merge branch 'bug6148' 2025-12-01 15:36:11 +01:00
Sohaib Baig 2841b71152 wip: add marketing email Opt out feature in UI
added to Admin Console > User Management > User row > Edit action >
Dialog box > checkbox

and also to PUT /user API

and also (partially) to User details (this is currently erroring)
2025-11-28 19:02:50 +01:00
Sohaib Baig c1fe762710 add didOptOutOfMarketingEmails flag to User creation
Flag is set to false by default. Cross checked setting of flag at user
creation from Admin Console > User Management > Create User, then the
corresponding record in mongo db, which does indeed have the flag.
2025-11-28 16:34:53 +01:00
Sohaib Baig 02d782497c Merge branch 'main' into bug6148 2025-11-27 15:06:16 +01:00
Sohaib Baig c11a113412 bugfix: extended locking duration for unlockUser test
Locally, the lock duration was not long enough to last until the admin
logged in to unlock them. This bypassed the need to interact with a
dialog locally, and so the test was still succeeding even after an
interaction command for this dialog was removed. This duration was long
enough for the server however, and so the dialog demanding interaction
would appear and crash the test. The expected lock duration has been
extended by trigger +1 failed login attempts as well as the dialog
interact.
2025-11-26 16:05:44 +01:00
Sohaib Baig 499713d04d bugfix: testUnlockUser blocked by popup dialog
Popup dialog replaced with toast notification for success. Although the
reason behind this bug is yet not understood because the dialog should
have been accepted by the corresponding method in the PO, as it has done
before, replacing it with a toast notification should nevertheless
remove the possibility of it happening again.
2025-11-25 17:44:07 +01:00
Sohaib Baig 10a0f9fa6b fix merge faults 2025-11-21 16:31:52 +01:00
Sohaib Baig 8689f9f587 Merge branch 'main' into bug6148 2025-11-21 13:09:27 +01:00
Sohaib Baig 372e97235b Merge branch 'main' into bug6148 2025-11-21 13:08:43 +01:00
Sohaib Baig beb685e7b0 Merge branch 'main' into bug6148 2025-11-19 16:54:11 +01:00
Sohaib Baig 6a60ed227f fix concurrent write access error on get locked IPs
locked IPs are fetched after being compared with the permission for each
IP. Those that fail the permission permission check are removed from the
result of the fetch operation. This removal was previously happening in
an iterable.forEach method, removing elements from inside this method
caused a ConcurrentModificationException, so forEach usage was replaced
with an iterator that safely allows removals based on cursor position.
2025-11-18 16:45:19 +01:00
Sohaib Baig 9d71aaf812 fix StringMessages from previous improper merge 2025-11-14 15:13:02 +01:00
Sohaib Baig fe764614b1 Merge branch 'main' into bug6148 2025-11-13 13:37:06 +01:00
Sohaib Baig fd91cb0922 forgot to add changes to previous commit 2025-11-13 13:21:15 +01:00
Sohaib Baig 8ca8dd20eb locked IPs turned into permission object instead of server action
Locked IPs were previously not treated as SecuredSecurityType, but
rather their actions were treated as separate ServerAction instances
with the object in question remaining the server. To maintain permission
granularity at the IP address level, Locked IP addresses have been made
HasPermissions object in SecuredSecurityType with DefaultActions READ
and DELETE serving as get and unlock method permissions respectively
that can now be treated as the object wildcard of permission triples.
2025-11-13 13:20:53 +01:00
Sohaib Baig 89edd71d65 re-added accidentally removed translation string 2025-11-10 23:26:36 +01:00
Sohaib Baig 6957c1c352 check permissions not roles 2025-11-10 23:10:28 +01:00
Sohaib Baig 6f62cf855e remove unused imports
Previous commit had unused imports which were not cleaned. this commit
rectifies that.
2025-11-10 22:42:41 +01:00
Sohaib Baig c113f87c16 shift ip lock management operations to user management service
They were previously in sailing service, which is not their domain.
2025-11-10 22:38:49 +01:00
Sohaib Baig 345e4105f0 for each english i8n pair in sap.sse.security.ui, DE has one too
compared using eclipse's select two files, right click, compare with >
each other tool and translated with google translate
2025-11-10 17:15:22 +01:00
Sohaib Baig 6f1a55c1fa unlock a selection of users from the user management panel
A method was exposed from UserManagementWriteService for bulk unlocking
a selection of users by their username. An 'extra' property was added to
successInfo class to return usernames without disturbing GWT
serialization. corresponding test is also written.

In SecurityServiceImpl, the
UserManagementException.PASSWORD_AUTHENTICATION_CURRENTLY_LOCKED_FOR_USER
property is used to return an error message with a constant referrable
string that is checked against a condition elsewhere in the code. I had
caused issues in the code by replacing this referenced string with a
custom error message without accounting for its usage elsewhere, causing
faults. This has been reversed.
2025-11-10 16:58:08 +01:00
Sohaib Baig 96eb02df0c fix user management "locked until" column not updating after unlock
The unlocked user's entry is updated locally with a
entry.copyWithLockedUntil, inserted in the list of all entries and
displayed.
2025-11-07 13:53:42 +01:00
Sohaib Baig 2ea8fa37eb fix ip blocklist crashing LocalServer panel
in the IP Blocklist panel, the unlock button was added at an index
position. this was not necessary, but cascaded the issue that when the
refresh button was not added at 0, inserting at index 1 caused errors
cascading upto LocalServer.

the refresh button did not need to be added before the commit separately
because it was composed by a buttonPanel.addAction method that did both
object creation and addition to the panel together before commit
c10f6027a3, and after that commit was
created by a Button constructor.
2025-11-07 11:18:56 +01:00
Sohaib Baig 2a2a5cdb6e Merge branch 'bug6148' of github.com:SAP/sailing-analytics into bug6148 2025-11-06 13:14:29 +01:00
Sohaib Baig 330040932a correct order of string messages 2025-11-06 10:29:23 +01:00
Sohaib Baig c10f6027a3 for ip locking, shift permissions to SecuredSecurityTypes
They were in SecuredDomainType before. IP locking is a server detail,
naught to do with the domain of sailing or races.
2025-11-06 10:21:30 +01:00
Sohaib Baig 9ed2676e7f add authorization checks for ip locking in sailing service (write) impl 2025-11-05 22:11:45 +01:00
Sohaib Baig b913b63882 Merge branch 'main' into bug6148 2025-11-05 15:06:19 +01:00
Sohaib Baig ee642ba483 Merge branch 'main' into bug6148 2025-11-04 16:33:05 +01:00
Sohaib Baig 5eb79a15e6 permission scheme for ip blocklist
use DefaultActions.READ and .DELETE instead of creating altogether new
ones in SecuredDomainType
allow unlocking for those with the roles admin or server admin, or those
with the DELETE permission on the respective ip blocklist domain type.
2025-11-04 16:27:25 +01:00
Sohaib Baig aae75a13c1 added search filter, counter to unlock btn 2025-10-30 13:02:47 +01:00
Sohaib Baig a50a07d690 Merge branch 'main' into bug6148 2025-10-29 16:39:05 +01:00
Sohaib Baig db76d70af5 Merge branch 'main' into bug6148 2025-10-29 16:35:32 +01:00
Sohaib Baig a3c3e0e116 accommodate test failure due to USA gov shutdown 2025-10-28 14:45:36 +01:00
Sohaib Baig ff0c3a98b8 accommodate US gov shutdown causing NOAA Test failures 2025-10-28 14:44:30 +01:00
Sohaib Baig 5fdf9c3b33 bug fixes for user creation fail2ban impl and test
fail2ban didn't extend the lock when a lock already existed on said IP. this was remedied. the test failed because selenium was looking for a component using the driver, so from the head of the tree, instead of from the webelement, which was at a specific lower point in the element tree and thus is unaffected by selenium IDs being similar. the findElement is now done from a method on the webelement.
2025-10-27 19:37:22 +01:00
Sohaib Baig 879b360d71 added tests, user creation abuse blocklist 2025-10-25 18:27:08 +02:00
Sohaib Baig 180d221e57 fix: missed import 2025-10-09 10:47:09 +02:00
Sohaib Baig 726e8faeea set system properties manually
System properties were being read from the config file previously, but not set using system.setproperty as they are expected by the selenium package later. This fixes that by setting them before control is handed over to selenium
2025-10-09 10:42:09 +02:00
Sohaib Baig dcd08337d1 system properties read from the local test config xml are now set using System.setProperty before control is handed over to the JUnit package. Previously they were not set and Selenium requires these fields to find chromedriver 2025-10-08 18:37:06 +02:00
Sohaib Baig 7dea9beb12 service endpoints for ip based lock management added 2025-09-29 12:57:53 +02:00
Sohaib Baig 9ad9170a34 assert replaced with JUnit assertion to make login attempt monitorable 2025-08-25 16:05:53 +02:00
Sohaib Baig 4fefac7e64 Merge branch 'main' into bug6148 2025-08-20 16:20:57 +02:00
Sohaib Baig 3bdca09ea9 Merge branch 'main' into bug6148 2025-08-20 15:59:52 +02:00
Sohaib Baig 511d198f77 UI tests added for locking and unlocking 2025-08-20 15:33:24 +02:00
Sohaib Baig 08381ba52b added missing German translations 2025-08-19 13:00:04 +02:00
Sohaib Baig 79d5bbd624 merge into main for test errors' fixes 2025-08-13 13:20:04 +02:00
Sohaib Baig 3641f8ef56 added test for timed lock impl 2025-08-12 16:12:29 +02:00
Sohaib Baig 97c732f9b7 moved timed lock to sap.sse.common from sap.sse.security.common 2025-08-12 15:46:32 +02:00
Sohaib Baig 4c3d8b66e7 added reset AI credentials btn 2025-08-12 14:50:24 +02:00
Sohaib Baig 2aa4454e51 corrected typo mistake 2025-08-11 14:45:03 +02:00
Sohaib Baig 29e0384fb6 fixed i8n syntax err + MANAGE_LOCK Enum assignment 2025-08-11 13:09:34 +02:00
Sohaib Baig c3f02086ac i8n corrections 2025-08-04 19:54:32 +02:00
Sohaib Baig 0c8b91387f added unlock button per user
also renamed LockingAndBanning to TImedLock
2025-08-04 19:50:17 +02:00
Sohaib Baig 567519b664 addressed pull request comments 2025-07-28 17:03:54 +02:00
Sohaib Baig 78b83555bc create ai core object at init even without API key 2025-07-28 14:29:38 +02:00
sohaib-sap 6bbda8c8a6 onboarding browser compatibility
added line about safari not being compatible in onboarding dev environment
2025-07-09 15:07:24 +02:00
Sohaib Baig 8ab32b7353 onboarding doc updated
added an eclipse configuration file to automate a number of steps.
Apple silicon mac specific guidance added where needed.
2025-07-07 17:52:30 +02:00