package org.hadatac.console.models; import java.util.UUID; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.beans.Field; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.hadatac.utils.Collections; import play.Play; import be.objectify.deadbolt.core.models.Permission; /** * Initial version based on work by Steve Chaloner (steve@objectify.be) for * Deadbolt2 */ public class UserPermission implements Permission { /** * */ private static final long serialVersionUID = 1L; public Long id; @Field("id") public String id_s; @Field("value") public String value; public String getValue() { return value; } public static UserPermission findByValue(String value) { return findByValueSolr(value); } public static UserPermission findByValueSolr(String value) { UserPermission permission = null; SolrClient solrClient = new HttpSolrClient( Play.application().configuration().getString("hadatac.solr.users") + Collections.AUTHENTICATE_PERMISSIONS); SolrQuery solrQuery = new SolrQuery("value:" + value); try { QueryResponse queryResponse = solrClient.query(solrQuery); solrClient.close(); SolrDocumentList list = queryResponse.getResults(); if (list.size() == 1) { permission = convertSolrDocumentToUserPermission(list.get(0)); } } catch (Exception e) { System.out.println("[ERROR] UserPermission.findByValueSolr - Exception message: " + e.getMessage()); } return permission; } public static UserPermission findByIdSolr(String id) { UserPermission permission = null; SolrClient solrClient = new HttpSolrClient( Play.application().configuration().getString("hadatac.solr.users") + Collections.AUTHENTICATE_PERMISSIONS); SolrQuery solrQuery = new SolrQuery("id:" + id); try { QueryResponse queryResponse = solrClient.query(solrQuery); solrClient.close(); SolrDocumentList list = queryResponse.getResults(); if (list.size() == 1) { permission = convertSolrDocumentToUserPermission(list.get(0)); } } catch (Exception e) { System.out.println("[ERROR] UserPermission.findByIdSolr - Exception message: " + e.getMessage()); } return permission; } public void save() { SolrClient solrClient = new HttpSolrClient( Play.application().configuration().getString("hadatac.solr.users") + Collections.AUTHENTICATE_PERMISSIONS); if (this.id_s == null) { this.id_s = UUID.randomUUID().toString(); } try { solrClient.addBean(this); solrClient.commit(); solrClient.close(); } catch (Exception e) { System.out.println("[ERROR] UserPermission.save - Exception message: " + e.getMessage()); } } private static UserPermission convertSolrDocumentToUserPermission(SolrDocument doc) { UserPermission permission = new UserPermission(); permission.id_s = doc.getFieldValue("id").toString(); permission.value = doc.getFieldValue("value").toString(); return permission; } }