Search in sources :

Example 1 with InvalidUserInviteToken

use of net.geoprism.account.InvalidUserInviteToken in project geoprism-registry by terraframe.

the class RegistryAccountUtil method inviteCompleteInTrans.

@Transaction
private static void inviteCompleteInTrans(java.lang.String token, String json) {
    UserInviteQuery query = new UserInviteQuery(new QueryFactory());
    query.WHERE(query.getToken().EQ(token));
    OIterator<? extends UserInvite> reqIt = query.getIterator();
    UserInvite invite;
    if (reqIt.hasNext()) {
        invite = reqIt.next();
        invite.appLock();
    } else {
        throw new InvalidUserInviteToken();
    }
    if ((System.currentTimeMillis() - invite.getStartTime().getTime()) > (GeoprismProperties.getInviteUserTokenExpireTime() * 3600000)) {
        throw new InvalidUserInviteToken();
    }
    JsonObject account = JsonParser.parseString(json).getAsJsonObject();
    if (invite.getRoleIds().length() > 0) {
        JsonArray array = JsonParser.parseString(invite.getRoleIds()).getAsJsonArray();
        List<String> list = new LinkedList<String>();
        for (int i = 0; i < array.size(); i++) {
            list.add(array.get(i).getAsString());
        }
        UserInfo.applyUserWithRoles(account, list.toArray(new String[list.size()]), true);
    } else {
        UserInfo.applyUserWithRoles(account, new String[] {}, true);
    }
    invite.delete();
    logger.info("User [" + account.get(GeoprismUser.USERNAME) + "] has been created via a user invite.");
}
Also used : UserInvite(net.geoprism.account.UserInvite) JsonArray(com.google.gson.JsonArray) QueryFactory(com.runwaysdk.query.QueryFactory) InvalidUserInviteToken(net.geoprism.account.InvalidUserInviteToken) UserInviteQuery(net.geoprism.account.UserInviteQuery) JsonObject(com.google.gson.JsonObject) LinkedList(java.util.LinkedList) Transaction(com.runwaysdk.dataaccess.transaction.Transaction)

Aggregations

JsonArray (com.google.gson.JsonArray)1 JsonObject (com.google.gson.JsonObject)1 Transaction (com.runwaysdk.dataaccess.transaction.Transaction)1 QueryFactory (com.runwaysdk.query.QueryFactory)1 LinkedList (java.util.LinkedList)1 InvalidUserInviteToken (net.geoprism.account.InvalidUserInviteToken)1 UserInvite (net.geoprism.account.UserInvite)1 UserInviteQuery (net.geoprism.account.UserInviteQuery)1