public static String getLinkForUser(OSecurityUser user) { return getLinkForUser(user.getDocument()); }
@Override protected ODocument execute(ODatabaseDocument oDatabaseDocument) { ODocument document = user.getDocument(); document = (ODocument) document.reload(); document.field(LAST_SESSION_FIELD, sessionId); document.save(); return document; } }.execute();
@Override protected ODocument execute(ODatabaseDocument oDatabaseDocument) { ODocument document = user.getDocument(); document = (ODocument) document.reload(); document.field(ONLINE_FIELD, online); document.save(); return document; } }.execute();
@Override public void start(RequestCycle cycle) { OrientDbWebSession session = OrientDbWebSession.get(); ODatabaseDocumentInternal db = session.getDatabase(); //It's required to have ability to check security rights locally OSecurityUser oUser = session.getUser(); OSecurityUser dbUser = db.getUser(); if(oUser!=null && oUser.getDocument()!=null && oUser.getDocument().getIdentity()!=null && (!oUser.getDocument().getIdentity().isValid() || dbUser==null || !Objects.equal(dbUser.getName(), oUser.getName()))) { db.setUser(db.getMetadata().getSecurity().getUser(oUser.getName())); } db.begin(); }
@Override public void start(RequestCycle cycle) { OrientDbWebSession session = OrientDbWebSession.get(); ODatabaseDocumentInternal db = session.getDatabase(); //It's required to have ability to check security rights locally OSecurityUser oUser = session.getUser(); OSecurityUser dbUser = db.getUser(); if(oUser!=null && oUser.getDocument()!=null && oUser.getDocument().getIdentity()!=null && (!oUser.getDocument().getIdentity().isValid() || dbUser==null || !Objects.equal(dbUser.getName(), oUser.getName()))) { db.setUser(db.getMetadata().getSecurity().getUser(oUser.getName())); } db.begin(); }
public ODocument getDefaultPerspective(ODatabaseDocument db, OSecurityUser user) { if(user!=null) { Object perspectiveObj = user.getDocument().field("perspective"); if(perspectiveObj!=null && perspectiveObj instanceof OIdentifiable) return (ODocument)((OIdentifiable)perspectiveObj).getRecord(); Set<? extends OSecurityRole> roles = user.getRoles(); ODocument perspective = null; for (OSecurityRole oRole : roles) { perspective = getPerspectiveForORole(oRole); if(perspective!=null) return perspective; } } ODocument perspective = getPerspectiveByName(db, DEFAULT_PERSPECTIVE); if(perspective==null) { perspective = runtimeRepairDefaultPerspective(); } return perspective; }
@Override public boolean authenticate(String username, String password) { boolean ret = super.authenticate(username, password); OrienteerWebApplication app = OrienteerWebApplication.get(); UserOnlineModule onlineModule = app.getServiceInstance(UserOnlineModule.class); if(ret) { perspective=null; String locale = getDatabase().getUser().getDocument().field(OrienteerLocalizationModule.OPROPERTY_LOCALE); onlineModule.updateOnlineUser(getUser(), true); if (!Strings.isNullOrEmpty(locale)) { Locale localeForLanguage = Locale.forLanguageTag(locale); if (localeForLanguage != null) { OrienteerWebSession.get().setLocale(localeForLanguage); } } onlineModule.updateSessionUser(getUser(), getId()); } return ret; }
@Test public void testQueryCoding() throws Exception { OSecurityUser currentUser = wicket.getTester().getDatabase().getUser(); ODocument userDoc = currentUser.getDocument(); String rid = userDoc.getIdentity().toString(); String sql = "select * from OUser where @rid = "+rid; String url = "orientdb/query/db/sql/"+URLEncoder.encode(sql, "UTF8"); String ret = wicket.getTester().executeUrl(url, "GET", null); assertTrue(ret.contains(userDoc.getIdentity().toString())); assertTrue(ret.contains((String)userDoc.field("name"))); assertTrue(ret.contains((String)userDoc.field("password"))); }
@Override public boolean authenticate(String username, String password) { ODatabaseDocumentInternal currentDB = getDatabase(); try { boolean inTransaction = currentDB.getTransaction().isActive(); IOrientDbSettings settings = OrientDbWebApplication.get().getOrientDbSettings(); ODatabaseDocumentInternal newDB = settings.getDatabasePoolFactory().get(settings.getDBUrl(), username, password).acquire(); if(newDB!=currentDB) { currentDB.activateOnCurrentThread(); currentDB.commit(); currentDB.close(); newDB.activateOnCurrentThread(); } setUser(username, password); userModel.setObject(newDB.getUser().getDocument()); // user = newDB.getMetadata().getSecurity().getUser(username); // newDB.setUser(user); if(inTransaction && !newDB.getTransaction().isActive()) newDB.begin(); return true; } catch (OSecurityAccessException e) { currentDB.activateOnCurrentThread(); return false; } }
@Override public boolean authenticate(String username, String password) { ODatabaseDocumentInternal currentDB = getDatabase(); try { boolean inTransaction = currentDB.getTransaction().isActive(); IOrientDbSettings settings = OrientDbWebApplication.get().getOrientDbSettings(); ODatabaseDocumentInternal newDB = settings.getDatabasePoolFactory().get(settings.getDBUrl(), username, password).acquire(); if(newDB!=currentDB) { currentDB.activateOnCurrentThread(); currentDB.commit(); currentDB.close(); newDB.activateOnCurrentThread(); } setUser(username, password); userModel.setObject(newDB.getUser().getDocument()); // user = newDB.getMetadata().getSecurity().getUser(username); // newDB.setUser(user); if(inTransaction && !newDB.getTransaction().isActive()) newDB.begin(); return true; } catch (OSecurityAccessException e) { currentDB.activateOnCurrentThread(); return false; } }
assertFalse(tester.isSignedIn()); assertNull(tester.getSession().getUser()); assertContains(tester.getDatabase().getUser().getDocument().toJSON(), getCurrentUser()); tester.signIn("writer", "writer"); assertTrue(tester.isSignedIn()); tester.signOut(); assertFalse(tester.isSignedIn()); assertContains(tester.getDatabase().getUser().getDocument().toJSON(), getCurrentUser()); tester.signIn("admin", "admin"); assertTrue(tester.isSignedIn()); assertContains(tester.getDatabase().getUser().getDocument().toJSON(), getCurrentUser());