Návod na získání ID aktuálně přihlášeného uživatele
Pokud budete chtít v OpenCms zjistit ID aktuálně přihlášeného uživatele, budete muset získat jeho objekt následujícím způsobem.
- Nejdřív je třeba získat CmsObject, což je stěžejní třída OpenCms, která ti poskytne přístup ke všem VFS resources.
Ta se dá získat např. přes CmsJspActionElement.
Př. definování CmsJspActionElement:
- CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response, ctx);
- Z CmsJspActionElement pak získám CmsObject:
- CmsObject obj = cms.getCmsObject();
- Teď když mám CmsObject, tak z něj se dostanu na CmsRequestContext (= třída, která ukládá informace o OpenCMS kontextu aktuálně přihlášeného uživatele) a z CmsRequestContextu už se dá získat objekt CmsUser s aktuálně přihlášeným uživatelem:
- CmsUser user = obj.getRequestContext().currentUser();
- Pokud budete navíc potřebovat dostat se na skupiny, do kterých přihlášený uživatel patří, využijete k tomu opět CmsObject:
- List<CmsGroup> groups = (List<CmsGroup>) cms.getGroupsOfUser(user.getName());
V následující části uvádím kousek JSP kódu, který vypisuje aktuálně přihlášeného uživatele a skupiny, do kterých patří.
pageContext.setAttribute("cmsUser", user);
pageContext.setAttribute("groups", groups);
...
<p>
Uživatel <c:out value="${cmsUser.name}"/> patří do skupin<br/>
<c:forEach items="${groups}" var="group">
<c:out value="${group.name}"/><br/>
</c:forEach>
</p>
Získání/kontrola práv na aktuální nebo libovolný VFS resource
TODO
Zdroje
Pro více informací k této problematice můžete prostudovat následující odkazy vedoucí do OpenCms 6.2.3 Javadoc.