/** * * @param securityToken security token * @param id object id to restore * @return the corresponding object, or null if object doesn't exist, is * deleted or you don't have authorisation (you can check authorisation * before call restore with {@link #canRead(java.lang.String, java.lang.String)} */ public Wikitty restore(String securityToken, String id) { Wikitty result = restore(this, securityToken, id); return result; }
/** * Get a user corresponding to a securityToken * @param ws the WikittyService to do the check on * @param securityToken the token of the user to search for. * @return the wikitty Id of the user corresponding to the securityToken */ public static String getUserForToken(WikittyService ws, String securityToken) { // recuperation de l'utilisateur associe au securityToken // le securityToken est aussi l'id de l'objet String userId = null; if (securityToken != null) { //Get the token Wikitty securityTokenWikitty = WikittyServiceEnhanced.restore(ws, securityToken, securityToken); if (securityTokenWikitty == null) { throw new SecurityException("bad (obsolete ?) token"); } else { //Get the user userId = WikittyTokenHelper.getUser(securityTokenWikitty); } } return userId; }
/** * restore the wikitty authorisation attached to given extension. * * @return a wikitty with WikittyAuthorisation extension, or null if given * extension has no security policy attached */ protected Wikitty restoreExtensionAuthorisation(String securityToken, String extensionName) { String wikittyAuthorisationId = WikittyMetaExtensionUtil.generateId( WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName); Wikitty wikittyAuthorisation = WikittyServiceEnhanced.restore( getDelegate(), securityToken, wikittyAuthorisationId); if (wikittyAuthorisation == null) { log.debug(extensionName + " has no authorization attached"); } return wikittyAuthorisation; }
/** * Restore wikitty entity with specified id or {@code null} if entity can't be be found. * * @param id entity ids if null return is empty list * @return wikitty entity with specified id or {@code null} if entity can't be found */ public List<Wikitty> restore(List<String> id) { long start = TimeLog.getTime(); List<Wikitty> result; if (id == null) { result = new ArrayList<Wikitty>(); } else { result = wikittyService.restore(securityToken, id); } timeLog.log(start, "restoreWikitty<list>"); return result; }
/** * restore the wikitty authorisation attached to given extension. * * @return a wikitty with WikittyAuthorisation extension, or null if given * extension has no security policy attached */ protected Wikitty restoreExtensionAuthorisation(String securityToken, String extensionName) { String wikittyAuthorisationId = WikittyMetaExtensionUtil.generateId( WikittyAuthorisation.EXT_WIKITTYAUTHORISATION, extensionName); Wikitty wikittyAuthorisation = WikittyServiceEnhanced.restore( getDelegate(), securityToken, wikittyAuthorisationId); if (wikittyAuthorisation == null) { log.debug(extensionName + " has no authorisation attached"); } return wikittyAuthorisation; }
/** tell who own a token (who got this token after login). * @param securityToken the token whose owner will be returned * @return a wikitty Id (wikitty has extension WikittyUser) */ protected String getUserId(String securityToken) { String result = null; // recuperation de l'utilisateur associe au securityToken // le securityToken est aussi l'id de l'objet if (securityToken != null) { Wikitty securityTokenWikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, securityToken); if (securityTokenWikitty == null) { throw new SecurityException("bad (obsolete ?) token"); } else { result = WikittyTokenHelper.getUser(securityTokenWikitty); } } return result; }
/** tell who own a token (who got this token after login). * @param securityToken the token whose owner will be returned * @return a wikitty Id (wikitty has extension WikittyUser) */ protected String getUserId(String securityToken) { String result = null; // recuperation de l'utilisateur associe au securityToken // le securityToken est aussi l'id de l'objet if (securityToken != null) { Wikitty securityTokenWikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, securityToken); if (securityTokenWikitty == null) { throw new SecurityException("bad (obsolete ?) token"); } else { result = WikittyTokenHelper.getUser(securityTokenWikitty); } } return result; }
/** * Restore wikitty entity with specified id or {@code null} if entity can't be found. * * @param id entity id * @return wikitty entity with specified id or {@code null} if entity can't be found */ public Wikitty restore(String id) { long start = TimeLog.getTime(); Wikitty result = null; if (id != null) { result = wikittyService.restore(securityToken, id); } timeLog.log(start, "restore"); return result; }
/** * retourne l'id du user associe au token * @param securityToken * @return null si l'id du user n'a pas pu etre recuperer */ protected String getUserId(String securityToken) { String result = null; // recuperation de l'utilisateur associe au securityToken // le securityToken est aussi l'id de l'objet if (securityToken != null) { Wikitty securityTokenWikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, securityToken); if (securityTokenWikitty == null) { // no exception, this service must never faild log.warn("bad (obsolete ?) token"); } else { result = WikittyTokenHelper.getUser(securityTokenWikitty); } } return result; }
/** * Check on a WikittyService if a user is member of a group. A * SecurityException might be thrown at runtime if the securityToken has * expired. * * @param ws the wikitty service to do the check on * @param securityToken the security token * @param userId the user to check's wikitty id * @param groupId the group to check the user is in's wikitty id * @return true if the user is in the group, false otherwise */ public static boolean isMember(WikittyService ws, String securityToken, String userId, String groupId) { if (groupId != null) { Wikitty group = WikittyServiceEnhanced.restore(ws, securityToken, groupId); if (WikittyGroupHelper.hasExtension(group)) { Set<String> members = WikittyGroupHelper.getMembers(group); if (members != null) { return members.contains(userId); } } } return false; }
/** * Restore wikitty entity with specified id or {@code null} if entity can't be be found. * * @param id entity ids if null return is empty list * @param preload patterns des liens qu'il faut precharger par exemple: * "Company.employee, Employee.person", "Company.address, Address.*" * @return wikitty entity with specified id or {@code null} if entity can't be found */ public List<Wikitty> restore(List<String> id, String ... preload) { long start = TimeLog.getTime(); List<Wikitty> result; if (id == null) { result = new ArrayList<Wikitty>(); } else { result = wikittyService.restore(securityToken, id); preload(result, preload); } timeLog.log(start, "restore<list>"); return result; }
@Override public WikittyEvent deleteTree(String securityToken, String treeNodeId) { Wikitty treeNodeWikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, treeNodeId); long start = TimeLog.getTime(); Collection<Wikitty> wikitties = Collections.singletonList(treeNodeWikitty); // TODO poussin 20101222 perhaps we must check deletion authorization // for all children ? checkStore(securityToken, wikitties); timeLog.log(start, "deleteTree"); return getDelegate().deleteTree(securityToken, treeNodeId); }
@Override public WikittyEvent deleteTree(String securityToken, String treeNodeId) { Wikitty treeNodeWikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, treeNodeId); long start = TimeLog.getTime(); Collection<Wikitty> wikitties = Collections.singletonList(treeNodeWikitty); // TODO poussin 20101222 perhaps we must check deletion authorization // for all children ? checkStore(securityToken, wikitties); timeLog.log(start, "deleteTree"); return getDelegate().deleteTree(securityToken, treeNodeId); }
/** get the wikitty with extension WikittyGroup that contains all app-admin. */ protected Wikitty getAppAdminGroup(String securityToken) { // on a deja fait la recherche precedement, on essaie de reutilise // le meme id Wikitty group = WikittyServiceEnhanced.restore( getDelegate(), securityToken, appAdminGroupId); if (group == null) { // 1er fois, on le recherche WikittyQuery criteria = new WikittyQueryMaker() .eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, WikittySecurityHelper.WIKITTY_APPADMIN_GROUP_NAME).end(); String groupId = getClient(securityToken).findByQuery(criteria); appAdminGroupId = groupId; group = WikittyServiceEnhanced.restore( getDelegate(), securityToken, appAdminGroupId); } return group; }
/** get the wikitty with extension WikittyGroup that contains all app-admin. */ protected Wikitty getAppAdminGroup(String securityToken) { // on a deja fait la recherche precedement, on essaie de reutilise // le meme id Wikitty group = WikittyServiceEnhanced.restore( getDelegate(), securityToken, appAdminGroupId); if (group == null) { // 1er fois, on le recherche WikittyQuery criteria = new WikittyQueryMaker() .eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, WikittySecurityHelper.WIKITTY_APPADMIN_GROUP_NAME).end(); String groupId = getClient(securityToken).findByQuery(criteria); appAdminGroupId = groupId; group = WikittyServiceEnhanced.restore( getDelegate(), securityToken, appAdminGroupId); } return group; }
@Override public boolean canDelete(String securityToken, String wikittyId) { boolean result = true; Wikitty wikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, wikittyId); if (wikitty != null) { String userId = getUserId(securityToken); for (String extName : wikitty.getExtensionNames()) { result = result && isWriter(securityToken, userId, wikitty, extName); if (!result) { break; } } } return result; }
@Override public boolean canDelete(String securityToken, String wikittyId) { boolean result = true; Wikitty wikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, wikittyId); if (wikitty != null) { String userId = getUserId(securityToken); for (String extName : wikitty.getExtensionNames()) { result = result && isWriter(securityToken, userId, wikitty, extName); if (!result) { break; } } } return result; }
@Override public boolean canRead(String securityToken, String wikittyId) { boolean result = true; String userId = getUserId(securityToken); Wikitty wikitty = WikittyServiceEnhanced.restore(getDelegate(), securityToken, wikittyId); if (wikitty == null) { result = false; } else { for (String extName : wikitty.getExtensionNames()) { result = result && isReader(securityToken, userId, wikitty, extName); if (!result) { break; } } } return result; }
@Override public boolean canRead(String securityToken, String wikittyId) { boolean result = true; String userId = getUserId(securityToken); Wikitty wikitty = WikittyServiceEnhanced.restore(getDelegate(), securityToken, wikittyId); if (wikitty == null) { result = false; } else { for (String extName : wikitty.getExtensionNames()) { result = result && isReader(securityToken, userId, wikitty, extName); if (!result) { break; } } } return result; }
/** * Null field are not used in search request. * * @param e sample wikitty * @return */ public <E extends BusinessEntityImpl> E findByExample(E e) { long start = TimeLog.getTime(); Criteria criteria = Search.query(e.getWikitty()).criteria(); String id = findIdByCriteria(criteria); E result = null; if (id != null) { Wikitty w = wikittyService.restore(securityToken, id); result = (E) WikittyUtil.newInstance( securityToken, wikittyService, e.getClass(), w); } timeLog.log(start, "findByExample"); return result; }