code: public CmsUser readUser(CmsDbContext dbc, CmsUUID id) throws CmsException {
  
          CmsUser user = m_monitor.getCachedUser(id.toString());
          if (user == null) {
              user = getUserDriver(dbc).readUser(dbc, id);
              m_monitor.cacheUser(user);
          }
          // important: do not return the cached user object, but a clone to avoid unwanted changes on cached objects
          return user.clone();
      }
docs: Returns a user object based on the id of a user.<p>
  
  @param dbc the current database context
  @param id the id of the user to read
  
  @return the user read
  
  @throws CmsException if something goes wrong