UNPKG

allex_hotelservice

Version:
49 lines (37 loc) 1.79 kB
# HotelService AllexJS Service that is a specialization of `allex_servicecollectionservice`. It creates an instance of an appropriate User class (in accordance to `propertyhash.usermodule.namespace` and `propertyhash.usermodule.basename`) per each User logged in - hence its name. In order to perform its task, it: 1. Intercepts the incoming userhash after successful authentication - in the overriden `Service`'s `preProcessUserHash` method. 2. _If the incoming role is `user`_, in the userhash it inserts the predefined filter that will filter out just the User's personalized Service. 3. `spawn`s the child Service - mapped to the name of the logged-in User. 4. On both the successful and unsuccessful `spawn` the User will be `destroy`ed. ## Choosing the appropriate User class `propertyhash` has to have the `usermodule` hash like ```javascript {... usermodule: { username: 'someusername_or_blankstring', namespace: 'somenamespace_or_blankstring', basename: 'somebasename_of_blankstring' } } ``` When a remote user approaches the HotelService, the `preProcessUserHash` will - check for existence of the `profile` key in the provided `userhash` - if no `profile` is found, the user will be blocked by setting its `name` and `role` to null - if `profile` is found, the `role` key within will dictate the process of constructing the User class name ### if `username` does not exist `'allex'` will be used as the default username ### if `namespace` exists `username__namespace_basenameroleservice` ### if `namespace` does not exist `username_basenameroleservice` Mind the `namespace`, `basename` and `role` in the above strings. These are placeholders for the real values of `namespace`, `basename` and `role`.