Changeset 5502


Ignore:
Timestamp:
07/31/14 08:54:11 (10 years ago)
Author:
Twan Goosen
Message:

Refactoring and documentation of reading the admins list
Refs #589

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/README.txt

    r5488 r5502  
    104104Change the value of the 'value' attribute if desired. If this parameter is not set,
    105105the default value "CLARIN Virtual Collection Registry" will be used as a collection name.
     106
     107* ADMINISTRATOR USERS *
     108
     109Add the following context parameter:
     110
     111<Parameter
     112           name="eu.clarin.cmdi.virtualcollectionregistry.admindb"
     113           value="/path/to/vcr-admin.conf" />
     114
     115Add the username of each user that should get administrator rights to the referenced
     116file, one username per line.
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/VirtualCollectionRegistry.java

    r5457 r5502  
    33import eu.clarin.cmdi.oai.provider.impl.OAIProvider;
    44import eu.clarin.cmdi.virtualcollectionregistry.model.User;
     5import eu.clarin.cmdi.virtualcollectionregistry.model.User_;
    56import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollection;
    67import eu.clarin.cmdi.virtualcollectionregistry.model.VirtualCollectionList;
     
    532533    }
    533534
     535    public List<User> getUsers() {
     536        final EntityManager em = datastore.getEntityManager();
     537        try {
     538            final CriteriaBuilder cb = em.getCriteriaBuilder();
     539            final CriteriaQuery<User> cq = cb.createQuery(User.class);
     540            final Root<User> root = cq.from(User.class);
     541
     542            // select all users, sort by display name then name
     543            cq.select(root);
     544            cq.orderBy(
     545                    cb.asc(root.get(User_.displayName)),
     546                    cb.asc(root.get(User_.name)));
     547
     548            em.getTransaction().begin();
     549            final TypedQuery<User> query = em.createQuery(cq);
     550            return query.getResultList();
     551        } finally {
     552            EntityTransaction tx = em.getTransaction();
     553            if ((tx != null) && tx.isActive() && !tx.getRollbackOnly()) {
     554                tx.commit();
     555            }
     556        }
     557    }
     558
    534559    public List<VirtualCollection> getVirtualCollections(
    535560            int first, int count, QueryOptions options)
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/Application.java

    r5475 r5502  
    2525import org.apache.wicket.session.pagemap.LeastRecentlyAccessedEvictionStrategy;
    2626import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
     27import org.slf4j.Logger;
     28import org.slf4j.LoggerFactory;
    2729import org.springframework.beans.factory.annotation.Autowired;
    2830import org.springframework.stereotype.Component;
     
    3133public class Application extends AuthenticatedWebApplication {
    3234
     35    private final static Logger logger = LoggerFactory.getLogger(Application.class);
     36   
    3337    @Autowired
    3438    private VirtualCollectionRegistry registry;
     
    3640    private DataStore dataStore;
    3741
    38     private static final String CONFIG_PARAM_ADMINDB = "admindb";
    39     private final Set<String> adminUsers = new HashSet<String>();
     42    private static final String CONFIG_PARAM_ADMINDB = "eu.clarin.cmdi.virtualcollectionregistry.admindb";
     43    private final Set<String> adminUsers = new HashSet<>();
    4044
    4145    @Override
     
    4953                loadAdminDatabase(s);
    5054            } catch (IOException e) {
    51                 // FIXME: handle error
     55                throw new RuntimeException("Could not load admin user database", e);
    5256            }
    5357        }
    5458        if (adminUsers.isEmpty()) {
    55             // FIXME: better logging
    56             System.err.println("WARNING: no admin users have been defined");
     59            logger.warn("No admin users have been defined");
     60        } else {
     61            logger.debug("Admin users: {}", adminUsers);
    5762        }
    5863        getMarkupSettings().setDefaultMarkupEncoding("utf-8");
     
    6166        getSessionSettings().setPageMapEvictionStrategy(
    6267                new LeastRecentlyAccessedEvictionStrategy(3));
    63         if (getConfigurationType() != DEPLOYMENT) {
     68        if (!DEPLOYMENT.equals(getConfigurationType())) {
    6469            getMarkupSettings().setStripWicketTags(true);
    6570            getMarkupSettings().setStripComments(true);
     
    118123    private void loadAdminDatabase(String filename) throws IOException {
    119124        adminUsers.clear();
    120         BufferedReader reader = new BufferedReader(new InputStreamReader(
    121                 new FileInputStream(filename)));
    122         String line;
    123         while ((line = reader.readLine()) != null) {
    124             line = line.trim();
    125             if (line.isEmpty() || line.startsWith("#")) {
    126                 continue;
    127             }
    128             adminUsers.add(line);
    129         } // while
    130         reader.close();
     125        try (BufferedReader reader = new BufferedReader(new InputStreamReader(
     126                new FileInputStream(filename)))) {
     127            String line;
     128            while ((line = reader.readLine()) != null) {
     129                line = line.trim();
     130                if (line.isEmpty() || line.startsWith("#")) {
     131                    continue;
     132                }
     133                adminUsers.add(line);
     134            } // while
     135        }
    131136    }
    132137
Note: See TracChangeset for help on using the changeset viewer.