Package org.fao.geonet.kernel

Examples of org.fao.geonet.kernel.AccessManager


    String changeMessage = Util.getParam(params, Params.CHANGE_MESSAGE);

    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    DataManager dm = gc.getBean(DataManager.class);
    AccessManager accessMan = gc.getBean(AccessManager.class);
    UserSession us = context.getUserSession();

    context.info("Get selected metadata");
    SelectionManager sm = SelectionManager.getManager(us);

    Set<Integer> metadata = new HashSet<Integer>();
    Set<Integer> notFound = new HashSet<Integer>();
    Set<Integer> notOwner = new HashSet<Integer>();

        final MetadataRepository metadataRepository = context.getBean(MetadataRepository.class);
        synchronized(sm.getSelection("metadata")) {
    for (Iterator<String> iter = sm.getSelection("metadata").iterator(); iter.hasNext();) {
      String uuid = (String) iter.next();
      String id   = dm.getMetadataId(uuid);


            final Integer iId = Integer.valueOf(id);
            if (! metadataRepository.exists(iId)) {
        notFound.add(iId);
      } else if (!accessMan.isOwner(context, id)) {
        notOwner.add(iId);
      } else {
        metadata.add(iId);
      }
    }
View Full Code Here


     */
  public Element serviceSpecificExec(Element params, ServiceContext context) throws Exception {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);

    DataManager dataMan = gc.getBean(DataManager.class);
    AccessManager am = gc.getBean(AccessManager.class);
    String id = Utils.getIdentifierFromParameters(params, context);

    //--- check access
    int iLocalId = Integer.parseInt(id);
    if (!dataMan.existsMetadata(iLocalId))
      throw new IllegalArgumentException("Metadata not found --> " + id);

    //--- only allow the owner of the record to set its status
    if (!am.isOwner(context, id)) {
      throw new UnAuthorizedException("Only the owner of the metadata can set the status. User is not the owner of the metadata", null);
    }

    String status = Util.getParam(params, Params.STATUS);
    String changeMessage = Util.getParam(params, Params.CHANGE_MESSAGE);
View Full Code Here

  public Element exec(Element params, ServiceContext context) throws Exception
  {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);
    DataManager dataMan = gc.getBean(DataManager.class);
    AccessManager am = gc.getBean(AccessManager.class);

    String id = Utils.getIdentifierFromParameters(params, context);

    //-----------------------------------------------------------------------
    //--- check access
    int iLocalId = Integer.parseInt(id);
   
    if (!dataMan.existsMetadata(iLocalId))
      throw new IllegalArgumentException("Metadata not found --> " + id);

    if (!am.isOwner(context,id))
      throw new IllegalArgumentException("You are not the owner of metadata --> "+id);

    //-----------------------------------------------------------------------
    //--- retrieve metadata status

    MetadataStatus stats = dataMan.getStatus(iLocalId);

    String status = Params.Status.UNKNOWN;
    String userId = "-1"; // no userId
    if (stats != null) {
        status = String.valueOf(stats.getId().getStatusId());
            userId = String.valueOf(stats.getId().getUserId());
    }

    //-----------------------------------------------------------------------
    //--- retrieve status values

    Element elStatus = gc.getBean(StatusValueRepository.class).findAllAsXml();

    @SuppressWarnings("unchecked")
        List<Element> kids = elStatus.getChildren();

    for (Element kid : kids) {

      kid.setName(Geonet.Elem.STATUS);

      //--- set status value of this metadata to 'on'

      if (kid.getChildText("id").equals(status)) {
        kid.addContent(new Element("on"));

        //--- set the userId of the submitter into the result
        kid.addContent(new Element("userId").setText(userId));
      }
    }

    //-----------------------------------------------------------------------
    //--- get the list of content reviewers for this metadata record

    Set<Integer> ids = new HashSet<Integer>();
    ids.add(Integer.valueOf(id));

    Element cRevs = am.getContentReviewers(ids);
    cRevs.setName("contentReviewers");

    //-----------------------------------------------------------------------
    //--- put it all together

    Element elRes = new Element(Jeeves.Elem.RESPONSE)
                    .addContent(new Element(Geonet.Elem.ID).setText(id))
                    .addContent(new Element("hasEditPermission").setText(am.hasEditPermission(context, id) ? "true" : "false"))
                    .addContent(elStatus)
                    .addContent(cRevs);

    return elRes;
  }
View Full Code Here

  public Element exec(Element params, ServiceContext context) throws Exception
  {
    GeonetContext gc = (GeonetContext) context.getHandlerContext(Geonet.CONTEXT_NAME);
    DataManager dataMan = gc.getBean(DataManager.class);
    AccessManager am = gc.getBean(AccessManager.class);
    UserSession us = context.getUserSession();

    context.info("Get selected metadata");
    SelectionManager sm = SelectionManager.getManager(us);

    Set<Integer> ids = new HashSet<Integer>();

    //-----------------------------------------------------------------------
    //--- run through the selected set of metadata records
    synchronized(sm.getSelection("metadata")) {
    for (Iterator<String> iter = sm.getSelection("metadata").iterator(); iter.hasNext();) {
      String uuid = (String) iter.next();
      String id   = dataMan.getMetadataId(uuid);

      //--- check access, if owner then process
     
      if (am.isOwner(context, id)) {
        ids.add(Integer.valueOf(id));
      }
    }
    }

    //-----------------------------------------------------------------------
    //--- retrieve status values
    Element elStatus = gc.getBean(StatusValueRepository.class).findAllAsXml();
    @SuppressWarnings("unchecked")
        List<Element> list = elStatus.getChildren();

    for (Element el : list) {
      el.setName(Geonet.Elem.STATUS);
    }

    //-----------------------------------------------------------------------
    //--- get the list of content reviewers for this metadata record
    Element cRevs = am.getContentReviewers(ids);
    cRevs.setName("contentReviewers");

    //-----------------------------------------------------------------------
    //--- put all together
    Element elRes = new Element(Jeeves.Elem.RESPONSE)
View Full Code Here

  /**
   * Allow search on current user's groups only adding a BooleanClause to the
   * search.
   */
  public static Query getGroupsQuery(ServiceContext context) throws Exception {
    AccessManager am = context.getBean(AccessManager.class);
    Set<Integer> hs = am.getUserGroups(context.getUserSession(), context.getIpAddress(), false);

    BooleanQuery query = new BooleanQuery();


    BooleanClause.Occur occur = LuceneUtils
View Full Code Here

TOP

Related Classes of org.fao.geonet.kernel.AccessManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.