allex_hotelservice

HotelService

Usage no npm install needed!

<script type="module">
  import allexHotelservice from 'https://cdn.skypack.dev/allex_hotelservice';
</script>

README

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. spawns the child Service - mapped to the name of the logged-in User.
  4. On both the successful and unsuccessful spawn the User will be destroyed.

Choosing the appropriate User class

propertyhash has to have the usermodule hash like

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