Enhanced Groups & User dataclass security

Added permissions to User data class so only ‘Admin’ group may access
it in any way.

Enhanced customLoginListener to set theGroups array using the new
getGroupListForGroup() function.

New getGroupListForGroup() function:
checks to see if a group exists with the name of the single function
argument.
Adds to the array all child groups of that array and returns it.

TODO: recursively check each group for their child arrays.