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
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
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)
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.
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.
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.
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.