The "Guest" user
Table of Contents [-]
The "guest" user is actually an anonymous user. When the portal is first visited, if no user can be identified, the "default" (a.k.a. "guest") user is created. This user is assigned to a com.liferay.portal.model.User object (which also exists in the database and is used by Hibernate to populate the "guest" User entity when needed). The guest user has a default user ID, and is assigned to a default group, which has a default layout. Once in the database, the default user can be retrieved by calling UserLocalServiceUtil.getDefaultUser(companyId). The user ID of the default user is the company id of the portal, plus the suffix ".default".
The default user is added to the database in com.liferay.portal.service.impl.CompanyLocalServiceImpl at line 178. This in turn calls GroupLocalServiceUtil.checkSystemGroups(), which ends up calling GroupLocalServiceImpl.addDefaultLayouts()
The default user's layout is added to the database in com.liferay.portal.service.impl.GroupLocalServiceImpl.addDefaultLayouts() starting at line 436. The default user's group name is defined in com.liferay.portal.util.GroupNames.