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.
Made getChildren call more clear

Added ‘allLevels’ argument to getChildren to make it clear that it
recursively gets all the children.
Merge pull request #1 from briancordanyoung/master

Added to loginListener - uses groups in directory