Changeset 7014


Ignore:
Timestamp:
Nov 12, 2015, 9:43:25 AM (7 years ago)
Author:
Nicklas Nordborg
Message:

Merged patch release 3.6.2 to the trunk

Location:
trunk
Files:
17 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/core/net/sf/basedb/core/AbstractEntityQuery.java

    r6934 r7014  
    126126      if the regular Hibernate session should be used
    127127    @param optionalFilter A runtime filter replacing the default optional filter
    128       or null to not use any optional filter
     128      or null to not use any optional filter (not supported for stateless sessions)
    129129  */
    130130  AbstractEntityQuery(Item returnType, String entityName, boolean stateless, QueryRuntimeFilter optionalFilter)
     
    146146    this.returnType = returnType;
    147147    this.rootType = rootType;
    148     this.requiredFilter = QueryRuntimeFilterFactory.getRequiredFilter(rootType);
    149     this.optionalFilter = optionalFilter;
     148    this.requiredFilter = stateless ? null : QueryRuntimeFilterFactory.getRequiredFilter(returnType);
     149    this.optionalFilter = stateless ? null : optionalFilter;
    150150    this.includes = EnumSet.of(Include.NOT_REMOVED, Include.MINE, Include.IN_PROJECT,
    151151        Include.ANNOTATED, Include.NOT_ANNOTATED);
     
    357357  void enableFilters(DbControl dc)
    358358  {
    359     if (requiredFilter != null || optionalFilter != null)
     359    if (!isStateless() && (requiredFilter != null || optionalFilter != null))
    360360    {
    361361      filterManager = new QueryRuntimeFilterManager(dc, getItemType());
  • trunk/src/core/net/sf/basedb/core/ArrayDesign.java

    r6881 r7014  
    2929import net.sf.basedb.core.data.ReporterData;
    3030import net.sf.basedb.core.query.Hql;
     31import net.sf.basedb.core.query.PermissionRestriction;
    3132import net.sf.basedb.core.query.Restrictions;
    3233
     
    762763    DataQuery<ReporterData> query =
    763764      new DataQuery<ReporterData>(ReporterData.class, Item.FEATURE, null, "reporter");
     765    // We allow reporters without READ permission unless it has been explicitely DENIED
     766    query.restrictPermanent(new PermissionRestriction(Permission.DENIED, Item.REPORTER));
    764767    query.restrictPermanent(
    765768        Restrictions.eq(
  • trunk/src/core/net/sf/basedb/core/DataQuery.java

    r4889 r7014  
    7676  DataQuery(Class<I> dataClass, Item rootType, String rootName, String select)
    7777  {
    78     super(Item.fromDataClass(dataClass), rootType, rootName, select, true,
    79       QueryRuntimeFilterFactory.getOptionalFilter(rootType));
     78    super(Item.fromDataClass(dataClass), rootType, rootName, select, true, null);
    8079    this.dataClass = dataClass;
    8180  }
    8281 
    83   /**
    84     Create a new query for the specified item, using a non-default optional
    85     runtime filter.
    86     @param dataClass The class of the data objects that are returned
    87     @param optionalFilter A runtime filter replacing the default optional filter
    88       or null to not use any optional filter
    89   */
    90   DataQuery(Class<I> dataClass, String entityName, QueryRuntimeFilter optionalFilter)
    91   {
    92     super(Item.fromDataClass(dataClass), entityName, true, optionalFilter);
    93     this.dataClass = dataClass;
    94   }
    95 
    9682  /**
    9783    Execute the query and return the results as an iterator.
     
    10692    ScrollIterator<I> result = null;
    10793    SessionControl sc = dc.getSessionControl();
    108     enableFilters(dc);
    10994    try
    11095    {
     
    124109      throw new SignalException("Aborted by user", ex);
    125110    }
    126     finally
    127     {
    128       disableFilters(dc);
    129     }
    130111   
    131112    return new DataResultIterator<I>(result,
  • trunk/src/core/net/sf/basedb/core/Plate.java

    r6881 r7014  
    3030import net.sf.basedb.core.query.Restrictions;
    3131import net.sf.basedb.core.query.Hql;
     32import net.sf.basedb.core.query.PermissionRestriction;
    3233
    3334import java.util.Date;
     
    521522    DataQuery<ReporterData> query =
    522523      new DataQuery<ReporterData>(ReporterData.class, Item.WELL, null, "reporter");
     524    // We allow reporters without READ permission unless it has been explicitely DENIED
     525    query.restrictPermanent(new PermissionRestriction(Permission.DENIED, Item.REPORTER));
    523526    query.restrictPermanent(
    524527        Restrictions.eq(
  • trunk/src/core/net/sf/basedb/core/RawBioAssay.java

    r7003 r7014  
    3434import net.sf.basedb.core.query.Restrictions;
    3535import net.sf.basedb.core.query.Hql;
     36import net.sf.basedb.core.query.PermissionRestriction;
    3637import net.sf.basedb.core.query.Dynamic;
    3738import net.sf.basedb.core.query.Expressions;
     
    11751176    DataQuery<ReporterData> query =
    11761177      new DataQuery<ReporterData>(ReporterData.class, Item.RAWDATA, rdt.getEntityName(), "reporter");
     1178    // We allow reporters without READ permission unless it has been explicitely DENIED
     1179    query.restrictPermanent(new PermissionRestriction(Permission.DENIED, Item.REPORTER));
    11771180    query.restrictPermanent(
    11781181      Restrictions.eq(
  • trunk/src/core/net/sf/basedb/core/Reporter.java

    r6468 r7014  
    2828import net.sf.basedb.core.data.ReporterData;
    2929import net.sf.basedb.core.data.ReporterTypeData;
     30import net.sf.basedb.core.query.PermissionRestriction;
    3031
    3132import org.hibernate.SQLQuery;
     
    226227  public static DataQuery<ReporterData> getQuery()
    227228  {
    228     return new DataQuery<ReporterData>(ReporterData.class, null);
     229    DataQuery<ReporterData> query = new DataQuery<ReporterData>(ReporterData.class, null);
     230    // We only allow reporters if there is an excplicit READ permission
     231    query.restrictPermanent(new PermissionRestriction(Permission.READ, Item.REPORTER));
     232    return query;
    229233  }
    230234
     
    238242  public static DynamicReporterQuery getDynamicQuery()
    239243  {
    240     return new DynamicReporterQuery();
     244    DynamicReporterQuery query = new DynamicReporterQuery();
     245    // We only allow reporters if there is an excplicit READ permission
     246    query.restrictPermanent(new PermissionRestriction(Permission.READ, Item.REPORTER));
     247    return query;
    241248  }
    242249 
  • trunk/src/core/net/sf/basedb/core/ReporterScore.java

    r4517 r7014  
    2525import net.sf.basedb.core.data.ReporterListScoreData;
    2626import net.sf.basedb.core.query.Hql;
     27import net.sf.basedb.core.query.PermissionRestriction;
    2728import net.sf.basedb.core.query.Restrictions;
    2829
     
    4647  {
    4748    ReporterScoreQuery query = new ReporterScoreQuery();
     49    // We allow reporters without READ permission unless it has been explicitely DENIED
     50    query.restrictPermanent(new PermissionRestriction(Permission.DENIED, Item.REPORTER));
    4851    // Join reporters with prefetch to avoid additional selects for each reporter
    4952    query.joinPermanent(Hql.innerJoin(null, "reporter", Item.REPORTER.getAlias(), true));
  • trunk/src/core/net/sf/basedb/core/ReporterScoreQuery.java

    r4517 r7014  
    6060    ScrollIterator<ReporterListScoreData> result = null;
    6161    SessionControl sc = dc.getSessionControl();
    62     enableFilters(dc);
     62
    6363    try
    6464    {
     
    7878      throw new SignalException("Aborted by user", ex);
    7979    }
    80     finally
    81     {
    82       disableFilters(dc);
    83     }
    8480    return new ReporterScoreResultIterator(result, dc, totalCount);   
    8581  }
  • trunk/src/core/net/sf/basedb/core/SessionControl.java

    r6930 r7014  
    10841084    if (Permission.hasPermission(permissions, Permission.DENIED))
    10851085    {
    1086       return false;
     1086      return permission == Permission.DENIED;
    10871087    }
    10881088    else
  • trunk/src/core/net/sf/basedb/core/Well.java

    r7002 r7014  
    339339    throws PermissionDeniedException, BaseException
    340340  {
    341     if (!getSessionControl().hasPermission(Permission.READ, Item.REPORTER))
    342     {
    343       throw new PermissionDeniedException(Permission.READ, "Reporter");
     341    if (getSessionControl().hasPermission(Permission.DENIED, Item.REPORTER))
     342    {
     343      throw new PermissionDeniedException(Permission.DENIED, "Reporter");
    344344    }
    345345    ReporterData reporter = getData().getReporter();
  • trunk/www/lims/arraydesigns/features/list_features.jsp

    r6834 r7014  
    9898try
    9999{
     100  final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
     101
    100102  final ArrayDesign design = ArrayDesign.getById(dc, arrayDesignId);
    101103  final FeatureIdentificationMethod fiMethod = design.getFeatureIdentificationMethod();
     
    352354        datatype="string"
    353355        title="[Rep] Name"
    354         sortable="true"
    355         filterable="true"
    356         exportable="true"
    357       />
    358       <tbl:columndef
    359         id="reporter.externalId"
    360         clazz="uniquecol"
    361         property="$rpt.externalId"
    362         exportproperty="reporter.externalId"
    363         datatype="string"
    364         title="[Rep] ID"
    365         sortable="true"
    366         filterable="true"
    367         exportable="true"
    368       />
    369       <tbl:columndef
    370         id="reporter.symbol"
    371         property="$rpt.symbol"
    372         exportproperty="reporter.symbol"
    373         datatype="string"
    374         title="[Rep] Gene symbol"
    375         sortable="true"
    376         filterable="true"
    377         exportable="true"
    378       />
    379       <tbl:columndef
    380         id="reporter.description"
    381         property="$rpt.description"
    382         exportproperty="reporter.description"
    383         datatype="string"
    384         title="[Rep] Description"
    385         sortable="true"
    386         filterable="true"
    387         exportable="true"
    388       />
    389       <tbl:columndef
    390         id="reporter.entryDate"
    391         property="$rpt.entryDate"
    392         exportproperty="reporter.entryDate"
    393         datatype="date"
    394         title="[Rep] Registered"
    395         sortable="true"
    396         filterable="true"
    397         exportable="true"
    398         formatter="<%=dateFormatter%>"
    399       />
    400       <tbl:columndef
    401         id="reporter.lastUpdate"
    402         property="$rpt.lastUpdate"
    403         exportproperty="reporter.lastUpdate"
    404         datatype="timestamp"
    405         title="[Rep] Last update"
    406         sortable="true"
    407         filterable="true"
    408         exportable="true"
    409         formatter="<%=dateTimeFormatter%>"
     356        sortable="<%=readReporter%>"
     357        filterable="<%=readReporter%>"
     358        exportable="<%=readReporter%>"
    410359      />
    411360      <%
    412       Enumeration<String, String> types = new Enumeration<String, String>();
    413       ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
    414       types.add("", "- none -");
    415       for (ReporterType rt : reporterTypes)
     361      if (readReporter)
    416362      {
    417         types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
    418       }
    419       %>
    420       <tbl:columndef
    421         id="reporter.reporterType"
    422         property="$rpt.reporterType"
    423         sortproperty="$rpt.reporterType.name"
    424         exportproperty="reporter.reporterType.name:string"
    425         datatype="int"
    426         enumeration="<%=types%>"
    427         title="[Rep] Type"
    428         sortable="true"
    429         filterable="true"
    430         exportable="true"
    431       />
    432       <%
    433       if (reporterProperties != null)
    434       {
    435         for (ExtendedProperty ep : reporterProperties)
     363        %>
     364        <tbl:columndef
     365          id="reporter.externalId"
     366          clazz="uniquecol"
     367          property="$rpt.externalId"
     368          exportproperty="reporter.externalId"
     369          datatype="string"
     370          title="[Rep] ID"
     371          sortable="true"
     372          filterable="true"
     373          exportable="true"
     374        />
     375        <tbl:columndef
     376          id="reporter.symbol"
     377          property="$rpt.symbol"
     378          exportproperty="reporter.symbol"
     379          datatype="string"
     380          title="[Rep] Gene symbol"
     381          sortable="true"
     382          filterable="true"
     383          exportable="true"
     384        />
     385        <tbl:columndef
     386          id="reporter.description"
     387          property="$rpt.description"
     388          exportproperty="reporter.description"
     389          datatype="string"
     390          title="[Rep] Description"
     391          sortable="true"
     392          filterable="true"
     393          exportable="true"
     394        />
     395        <tbl:columndef
     396          id="reporter.entryDate"
     397          property="$rpt.entryDate"
     398          exportproperty="reporter.entryDate"
     399          datatype="date"
     400          title="[Rep] Registered"
     401          sortable="true"
     402          filterable="true"
     403          exportable="true"
     404          formatter="<%=dateFormatter%>"
     405        />
     406        <tbl:columndef
     407          id="reporter.lastUpdate"
     408          property="$rpt.lastUpdate"
     409          exportproperty="reporter.lastUpdate"
     410          datatype="timestamp"
     411          title="[Rep] Last update"
     412          sortable="true"
     413          filterable="true"
     414          exportable="true"
     415          formatter="<%=dateTimeFormatter%>"
     416        />
     417        <%
     418        Enumeration<String, String> types = new Enumeration<String, String>();
     419        ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
     420        types.add("", "- none -");
     421        for (ReporterType rt : reporterTypes)
    436422        {
    437           String name = ep.getName();
    438           %>
    439           <tbl:columndef
    440             id="<%="reporter."+name%>"
    441             property="<%="$rpt."+name%>"
    442             exportproperty="<%="reporter."+name%>"
    443             datatype="<%=ep.getType().getStringValue()%>"
    444             title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
    445             sortable="true"
    446             filterable="true"
    447             exportable="true"
    448             formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
    449           />
    450           <%
     423          types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
    451424        }
    452       }
     425        %>
     426        <tbl:columndef
     427          id="reporter.reporterType"
     428          property="$rpt.reporterType"
     429          sortproperty="$rpt.reporterType.name"
     430          exportproperty="reporter.reporterType.name:string"
     431          datatype="int"
     432          enumeration="<%=types%>"
     433          title="[Rep] Type"
     434          sortable="true"
     435          filterable="true"
     436          exportable="true"
     437        />
     438        <%
     439        if (reporterProperties != null)
     440        {
     441          for (ExtendedProperty ep : reporterProperties)
     442          {
     443            String name = ep.getName();
     444            %>
     445            <tbl:columndef
     446              id="<%="reporter."+name%>"
     447              property="<%="$rpt."+name%>"
     448              exportproperty="<%="reporter."+name%>"
     449              datatype="<%=ep.getType().getStringValue()%>"
     450              title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
     451              sortable="true"
     452              filterable="true"
     453              exportable="true"
     454              formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
     455            />
     456            <%
     457          }
     458        }
     459      }
    453460      %>
    454461      <tbl:columndef
     
    675682                <tbl:cell column="diameter"><%=block.getFeatureDiameter()%></tbl:cell>
    676683                <%
    677                 ReporterData reporter = item.getReporter();
    678                 if (reporter == null)
     684                if (!readReporter)
    679685                {
    680686                  %>
    681                   <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
    682                   <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
    683                   <tbl:cell column="reporter.symbol"><i>- none -</i></tbl:cell>
    684                   <tbl:cell column="reporter.description"><i>- none -</i></tbl:cell>
    685                   <tbl:cell column="entryDate"><i>- none -</i></tbl:cell>
    686                   <tbl:cell column="reporter.lastUpdate"><i>- none -</i></tbl:cell>
    687                   <tbl:cell column="reporter.reporterType"><i>- none -</i></tbl:cell>
     687                  <tbl:cell column="reporter.name"><i>- denied -</i></tbl:cell>
    688688                  <%
    689                   if (reporterProperties != null)
    690                   {
    691                     for (ExtendedProperty ep : reporterProperties)
    692                     {
    693                       String name = ep.getName();
    694                       %>
    695                       <tbl:cell column="<%="reporter."+name%>"><i>- none -</i></tbl:cell>
    696                       <%
    697                     }
    698                   }
    699689                }
    700690                else
    701691                {
    702                   %>
    703                   <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell>
    704                   <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
    705                   <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
    706                   <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
    707                   <tbl:cell column="reporter.entryDate" value="<%=reporter.getEntryDate()%>" />
    708                   <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
    709                   <tbl:cell column="reporter.reporterType"
    710                     ><base:propertyvalue
    711                       dbcontrol="<%=dc%>"
    712                       item="<%=reporter%>"
    713                       property="reporterType"
    714                       enableEditLink="<%=mode.hasEditLink()%>"
    715                       enablePropertyLink="<%=mode.hasPropertyLink()%>"
    716                     /></tbl:cell>
    717                   <%
    718                   if (reporterProperties != null)
     692                  ReporterData reporter = item.getReporter();
     693                  if (reporter == null)
    719694                  {
    720                     for (ExtendedProperty ep : reporterProperties)
     695                    %>
     696                    <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
     697                    <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
     698                    <tbl:cell column="reporter.symbol"><i>- none -</i></tbl:cell>
     699                    <tbl:cell column="reporter.description"><i>- none -</i></tbl:cell>
     700                    <tbl:cell column="entryDate"><i>- none -</i></tbl:cell>
     701                    <tbl:cell column="reporter.lastUpdate"><i>- none -</i></tbl:cell>
     702                    <tbl:cell column="reporter.reporterType"><i>- none -</i></tbl:cell>
     703                    <%
     704                    if (reporterProperties != null)
    721705                    {
    722                       String name = ep.getName();
    723                       %>
    724                       <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
    725                       <%
     706                      for (ExtendedProperty ep : reporterProperties)
     707                      {
     708                        String name = ep.getName();
     709                        %>
     710                        <tbl:cell column="<%="reporter."+name%>"><i>- none -</i></tbl:cell>
     711                        <%
     712                      }
     713                    }
     714                  }
     715                  else
     716                  {
     717                    %>
     718                    <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell>
     719                    <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
     720                    <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
     721                    <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
     722                    <tbl:cell column="reporter.entryDate" value="<%=reporter.getEntryDate()%>" />
     723                    <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
     724                    <tbl:cell column="reporter.reporterType"
     725                      ><base:propertyvalue
     726                        dbcontrol="<%=dc%>"
     727                        item="<%=reporter%>"
     728                        property="reporterType"
     729                        enableEditLink="<%=mode.hasEditLink()%>"
     730                        enablePropertyLink="<%=mode.hasPropertyLink()%>"
     731                      /></tbl:cell>
     732                    <%
     733                    if (reporterProperties != null)
     734                    {
     735                      for (ExtendedProperty ep : reporterProperties)
     736                      {
     737                        String name = ep.getName();
     738                        %>
     739                        <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
     740                        <%
     741                      }
    726742                    }
    727743                  }
  • trunk/www/lims/arraydesigns/features/view_feature.jsp

    r6520 r7014  
    7474try
    7575{
     76  final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
    7677  Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
    7778  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
     
    8283  final ArrayDesign design = ArrayDesign.getById(dc, arrayDesignId);
    8384  FeatureData feature = design.getFeatureById(itemId, true);
    84   ReporterData reporter = feature.getReporter();
     85  ReporterData reporter = readReporter ? feature.getReporter() : null;
    8586
    8687  ArrayDesignBlock block = Feature.getArrayDesignBlock(dc, feature);
     
    227228      </tbody>
    228229      </table>
    229      
    230230    </t:tab>
    231    
    232     <%
    233     if (reporter != null)
    234     {
    235       boolean readCurrentReporterType = true;
    236       ReporterType currentReporterType = null;
    237       try
     231    <t:tab id="reporter" title="Reporter" >
     232      <%
     233      if (reporter == null)
    238234      {
    239         currentReporterType = Reporter.getReporterType(dc, reporter);
     235        %>
     236        <table class="fullcc bg-filled-50"><tr><td>
     237        <b><%=readReporter ? "No reporter" : "Denied" %></b>
     238        </td></tr></table>
     239        <%
    240240      }
    241       catch (PermissionDeniedException ex)
     241      else
    242242      {
    243         readCurrentReporterType = false;
    244       }
    245       %>
    246       <t:tab id="reporter" title="Reporter" >
     243        boolean readCurrentReporterType = true;
     244        ReporterType currentReporterType = null;
     245        try
     246        {
     247          currentReporterType = Reporter.getReporterType(dc, reporter);
     248        }
     249        catch (PermissionDeniedException ex)
     250        {
     251          readCurrentReporterType = false;
     252        }
     253        %>
    247254        <table class="fullform outlined">
    248255        <tbody class="sectionheader">
     
    313320        </tbody>
    314321        </table>
    315       </t:tab>
    316       <%
    317     }
    318     %>
     322        <%
     323      }
     324      %>
     325    </t:tab>
    319326    </t:tabcontrol>
    320327
  • trunk/www/lims/plates/wells/list_wells.jsp

    r6834 r7014  
    100100try
    101101{
     102  final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
     103
    102104  final ItemQuery<AnnotationType> annotationTypeQuery = Base.getAnnotationTypesQuery(itemType);
    103105  SnapshotManager manager = new SnapshotManager();
     
    248250        datatype="string"
    249251        title="[Rep] Name"
    250         sortable="true"
    251         filterable="true"
    252         exportable="true"
    253       />
    254       <tbl:columndef
    255         id="reporter.externalId"
    256         clazz="uniquecol"
    257         property="$rpt.externalId"
    258         exportproperty="reporter.externalId"
    259         datatype="string"
    260         title="[Rep] ID"
    261         sortable="true"
    262         filterable="true"
    263         exportable="true"
    264       />
    265       <tbl:columndef
    266         id="reporter.symbol"
    267         property="$rpt.symbol"
    268         exportproperty="reporter.symbol"
    269         datatype="string"
    270         title="[Rep] Gene symbol"
    271         sortable="true"
    272         filterable="true"
    273         exportable="true"
    274       />
    275       <tbl:columndef
    276         id="reporter.description"
    277         property="$rpt.description"
    278         exportproperty="reporter.description"
    279         datatype="string"
    280         title="[Rep] Description"
    281         sortable="true"
    282         filterable="true"
    283         exportable="true"
    284       />
    285       <tbl:columndef
    286         id="reporter.entryDate"
    287         property="$rpt.entryDate"
    288         exportproperty="reporter.entryDate"
    289         datatype="date"
    290         title="[Rep] Registered"
    291         sortable="true"
    292         filterable="true"
    293         exportable="true"
    294         formatter="<%=dateFormatter%>"
    295       />
    296       <tbl:columndef
    297         id="reporter.lastUpdate"
    298         property="$rpt.lastUpdate"
    299         exportproperty="reporter.lastUpdate"
    300         datatype="timestamp"
    301         title="[Rep] Last update"
    302         sortable="true"
    303         filterable="true"
    304         exportable="true"
    305         formatter="<%=dateTimeFormatter%>"
     252        sortable="<%=readReporter %>"
     253        filterable="<%=readReporter %>"
     254        exportable="<%=readReporter %>"
    306255      />
    307256      <%
    308       Enumeration<String, String> types = new Enumeration<String, String>();
    309       ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
    310       types.add("", "- none -");
    311       for (ReporterType rt : reporterTypes)
     257      if (readReporter)
    312258      {
    313         types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
    314       }
    315       %>
    316       <tbl:columndef
    317         id="reporter.reporterType"
    318         property="$rpt.reporterType"
    319         sortproperty="$rpt.reporterType.name"
    320         exportproperty="reporter.reporterType.name:string"
    321         datatype="int"
    322         enumeration="<%=types%>"
    323         title="[Rep] Type"
    324         sortable="true"
    325         filterable="true"
    326         exportable="true"
    327       />
    328       <%
    329       if (reporterProperties != null)
    330       {
    331         for (ExtendedProperty ep : reporterProperties)
     259        %>
     260        <tbl:columndef
     261          id="reporter.externalId"
     262          clazz="uniquecol"
     263          property="$rpt.externalId"
     264          exportproperty="reporter.externalId"
     265          datatype="string"
     266          title="[Rep] ID"
     267          sortable="true"
     268          filterable="true"
     269          exportable="true"
     270        />
     271        <tbl:columndef
     272          id="reporter.symbol"
     273          property="$rpt.symbol"
     274          exportproperty="reporter.symbol"
     275          datatype="string"
     276          title="[Rep] Gene symbol"
     277          sortable="true"
     278          filterable="true"
     279          exportable="true"
     280        />
     281        <tbl:columndef
     282          id="reporter.description"
     283          property="$rpt.description"
     284          exportproperty="reporter.description"
     285          datatype="string"
     286          title="[Rep] Description"
     287          sortable="true"
     288          filterable="true"
     289          exportable="true"
     290        />
     291        <tbl:columndef
     292          id="reporter.entryDate"
     293          property="$rpt.entryDate"
     294          exportproperty="reporter.entryDate"
     295          datatype="date"
     296          title="[Rep] Registered"
     297          sortable="true"
     298          filterable="true"
     299          exportable="true"
     300          formatter="<%=dateFormatter%>"
     301        />
     302        <tbl:columndef
     303          id="reporter.lastUpdate"
     304          property="$rpt.lastUpdate"
     305          exportproperty="reporter.lastUpdate"
     306          datatype="timestamp"
     307          title="[Rep] Last update"
     308          sortable="true"
     309          filterable="true"
     310          exportable="true"
     311          formatter="<%=dateTimeFormatter%>"
     312        />
     313        <%
     314        Enumeration<String, String> types = new Enumeration<String, String>();
     315        ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
     316        types.add("", "- none -");
     317        for (ReporterType rt : reporterTypes)
    332318        {
    333           String name = ep.getName();
    334           %>
    335           <tbl:columndef
    336             id="<%="reporter."+name%>"
    337             property="<%="$rpt."+name%>"
    338             exportproperty="<%="reporter."+name%>"
    339             datatype="<%=ep.getType().getStringValue()%>"
    340             title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
    341             sortable="true"
    342             filterable="true"
    343             exportable="true"
    344             formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
    345           />
    346           <%
     319          types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
     320        }
     321        %>
     322        <tbl:columndef
     323          id="reporter.reporterType"
     324          property="$rpt.reporterType"
     325          sortproperty="$rpt.reporterType.name"
     326          exportproperty="reporter.reporterType.name:string"
     327          datatype="int"
     328          enumeration="<%=types%>"
     329          title="[Rep] Type"
     330          sortable="true"
     331          filterable="true"
     332          exportable="true"
     333        />
     334        <%
     335        if (reporterProperties != null)
     336        {
     337          for (ExtendedProperty ep : reporterProperties)
     338          {
     339            String name = ep.getName();
     340            %>
     341            <tbl:columndef
     342              id="<%="reporter."+name%>"
     343              property="<%="$rpt."+name%>"
     344              exportproperty="<%="reporter."+name%>"
     345              datatype="<%=ep.getType().getStringValue()%>"
     346              title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
     347              sortable="true"
     348              filterable="true"
     349              exportable="true"
     350              formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
     351            />
     352            <%
     353          }
    347354        }
    348355      }
     
    588595                </tbl:cell>
    589596                <%
    590                 ReporterData reporter = item.getReporter();
    591                 if (reporter == null)
     597                if (!readReporter)
    592598                {
    593599                  %>
    594                   <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
    595                   <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
     600                  <tbl:cell column="reporter.name"><i>- denied -</i></tbl:cell>
    596601                  <%
    597602                }
    598603                else
    599604                {
    600                   %>
    601                   <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell>
    602                   <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
    603                   <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
    604                   <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
    605                   <tbl:cell column="reporter.entryDate" value="<%=reporter.getEntryDate()%>" />
    606                   <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
    607                   <tbl:cell column="reporter.reporterType"
    608                     ><base:propertyvalue
    609                       dbcontrol="<%=dc%>"
    610                       item="<%=reporter%>"
    611                       property="reporterType"
    612                       enableEditLink="<%=mode.hasEditLink()%>"
    613                       enablePropertyLink="<%=mode.hasPropertyLink()%>"
    614                     /></tbl:cell>
    615                   <%
    616                   if (reporterProperties != null)
     605                  ReporterData reporter = item.getReporter();
     606                  if (reporter == null)
    617607                  {
    618                     for (ExtendedProperty ep : reporterProperties)
     608                    %>
     609                    <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
     610                    <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
     611                    <%
     612                  }
     613                  else
     614                  {
     615                    %>
     616                    <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), true)%></tbl:cell>
     617                    <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
     618                    <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
     619                    <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
     620                    <tbl:cell column="reporter.entryDate" value="<%=reporter.getEntryDate()%>" />
     621                    <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
     622                    <tbl:cell column="reporter.reporterType"
     623                      ><base:propertyvalue
     624                        dbcontrol="<%=dc%>"
     625                        item="<%=reporter%>"
     626                        property="reporterType"
     627                        enableEditLink="<%=mode.hasEditLink()%>"
     628                        enablePropertyLink="<%=mode.hasPropertyLink()%>"
     629                      /></tbl:cell>
     630                    <%
     631                    if (reporterProperties != null)
    619632                    {
    620                       String name = ep.getName();
    621                       %>
    622                       <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
    623                       <%
     633                      for (ExtendedProperty ep : reporterProperties)
     634                      {
     635                        String name = ep.getName();
     636                        %>
     637                        <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
     638                        <%
     639                      }
    624640                    }
    625641                  }
  • trunk/www/lims/plates/wells/view_well.jsp

    r6605 r7014  
    7676try
    7777{
     78  final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
    7879  Formatter<Date> dateFormatter = FormatterFactory.getDateFormatter(sc);
    7980  Formatter<Date> dateTimeFormatter = FormatterFactory.getDateTimeFormatter(sc);
     
    8586  final Well well = Well.getById(dc, itemId);
    8687  final Plate plate = well.getPlate();
    87   ReporterData reporter = well.getReporter();
     88  ReporterData reporter = readReporter ? well.getReporter() : null;
    8889  final int plateId = plate.getId();
    8990
     
    239240        <tr>
    240241          <th>Reporter</th>
    241           <td><i>- none -</i></td>
     242          <td><i>- <%=readReporter ? "none" : "denied"%> -</i></td>
    242243        </tr>
    243244        <%
  • trunk/www/views/rawbioassays/rawdata/list_rawdata.jsp

    r6935 r7014  
    9696try
    9797{
     98  final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
    9899  RawBioAssay rawBioAssay = RawBioAssay.getById(dc, rawBioAssayId);
    99100  RawDataType rawDataType = rawBioAssay.getRawDataType();
     
    322323        datatype="string"
    323324        title="[Rep] Name"
    324         sortable="true"
    325         filterable="true"
    326         exportable="true"
    327       />
    328       <tbl:columndef
    329         id="reporter.externalId"
    330         clazz="uniquecol"
    331         property="$r.externalId"
    332         exportproperty="reporter.externalId"
    333         datatype="string"
    334         title="[Rep] ID"
    335         sortable="true"
    336         filterable="true"
    337         exportable="true"
    338       />
    339       <tbl:columndef
    340         id="reporter.symbol"
    341         property="$r.symbol"
    342         exportproperty="reporter.symbol"
    343         datatype="string"
    344         title="[Rep] Gene symbol"
    345         sortable="true"
    346         filterable="true"
    347         exportable="true"
    348       />
    349       <tbl:columndef
    350         id="reporter.description"
    351         property="$r.description"
    352         exportproperty="reporter.description"
    353         datatype="string"
    354         title="[Rep] Description"
    355         sortable="true"
    356         filterable="true"
    357         exportable="true"
    358       />
    359       <tbl:columndef
    360         id="reporter.lastUpdate"
    361         property="$r.lastUpdate"
    362         exportproperty="reporter.lastUpdate"
    363         datatype="timestamp"
    364         title="[Rep] Last update"
    365         sortable="true"
    366         filterable="true"
    367         exportable="true"
    368         formatter="<%=dateFormatter%>"
     325        sortable="<%=readReporter%>"
     326        filterable="<%=readReporter%>"
     327        exportable="<%=readReporter%>"
    369328      />
    370329      <%
    371       Enumeration<String, String> types = new Enumeration<String, String>();
    372       ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
    373       types.add("", "- none -");
    374       for (ReporterType rt : reporterTypes)
     330      if (readReporter)
    375331      {
    376         types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
    377       }
    378       %>
    379       <tbl:columndef
    380         id="reporter.reporterType"
    381         property="$r.reporterType"
    382         sortproperty="$r.reporterType.name"
    383         exportproperty="reporter.reporterType.name:string"
    384         datatype="int"
    385         enumeration="<%=types%>"
    386         title="[Rep] Type"
    387         sortable="true"
    388         filterable="true"
    389         exportable="true"
    390       />
    391       <%
    392       if (reporterProperties != null)
    393       {
    394         for (ExtendedProperty ep : reporterProperties)
     332        %>
     333        <tbl:columndef
     334          id="reporter.externalId"
     335          clazz="uniquecol"
     336          property="$r.externalId"
     337          exportproperty="reporter.externalId"
     338          datatype="string"
     339          title="[Rep] ID"
     340          sortable="true"
     341          filterable="true"
     342          exportable="true"
     343        />
     344        <tbl:columndef
     345          id="reporter.symbol"
     346          property="$r.symbol"
     347          exportproperty="reporter.symbol"
     348          datatype="string"
     349          title="[Rep] Gene symbol"
     350          sortable="true"
     351          filterable="true"
     352          exportable="true"
     353        />
     354        <tbl:columndef
     355          id="reporter.description"
     356          property="$r.description"
     357          exportproperty="reporter.description"
     358          datatype="string"
     359          title="[Rep] Description"
     360          sortable="true"
     361          filterable="true"
     362          exportable="true"
     363        />
     364        <tbl:columndef
     365          id="reporter.lastUpdate"
     366          property="$r.lastUpdate"
     367          exportproperty="reporter.lastUpdate"
     368          datatype="timestamp"
     369          title="[Rep] Last update"
     370          sortable="true"
     371          filterable="true"
     372          exportable="true"
     373          formatter="<%=dateFormatter%>"
     374        />
     375        <%
     376        Enumeration<String, String> types = new Enumeration<String, String>();
     377        ItemResultList<ReporterType> reporterTypes = typeQuery.list(dc);
     378        types.add("", "- none -");
     379        for (ReporterType rt : reporterTypes)
    395380        {
    396           String name = ep.getName();
    397           %>
    398           <tbl:columndef
    399             id="<%="reporter."+name%>"
    400             property="<%="$r."+name%>"
    401             exportproperty="<%="reporter."+name%>"
    402             datatype="<%=ep.getType().getStringValue()%>"
    403             title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
    404             sortable="true"
    405             filterable="true"
    406             exportable="true"
    407             formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
    408           />
    409           <%
     381          types.add(Integer.toString(rt.getId()), HTML.encodeTags(rt.getName()));
     382        }
     383        %>
     384        <tbl:columndef
     385          id="reporter.reporterType"
     386          property="$r.reporterType"
     387          sortproperty="$r.reporterType.name"
     388          exportproperty="reporter.reporterType.name:string"
     389          datatype="int"
     390          enumeration="<%=types%>"
     391          title="[Rep] Type"
     392          sortable="true"
     393          filterable="true"
     394          exportable="true"
     395        />
     396        <%
     397        if (reporterProperties != null)
     398        {
     399          for (ExtendedProperty ep : reporterProperties)
     400          {
     401            String name = ep.getName();
     402            %>
     403            <tbl:columndef
     404              id="<%="reporter."+name%>"
     405              property="<%="$r."+name%>"
     406              exportproperty="<%="reporter."+name%>"
     407              datatype="<%=ep.getType().getStringValue()%>"
     408              title="<%="[Rep] "+HTML.encodeTags(ep.getTitle())%>"
     409              sortable="true"
     410              filterable="true"
     411              exportable="true"
     412              formatter="<%=FormatterFactory.getExtendedPropertyFormatter(sc, ep)%>"
     413            />
     414            <%
     415          }
    410416        }
    411417      }
     
    774780                %>
    775781                <%
    776                 ReporterData reporter = item.getReporter();
    777                 if (reporter == null)
     782                if (!readReporter)
    778783                {
    779784                  %>
    780                   <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
    781                   <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
     785                  <tbl:cell column="reporter.name"><i>- denied -</i></tbl:cell>
    782786                  <%
    783787                }
    784788                else
    785789                {
    786                   %>
    787                   <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), writeReporterPermission)%></tbl:cell>
    788                   <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
    789                   <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
    790                   <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
    791                   <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
    792                   <tbl:cell column="reporter.reporterType"><base:propertyvalue dbcontrol="<%=dc%>" item="<%=reporter%>" property="reporterType.name" /></tbl:cell>
    793                   <%
    794                   if (reporterProperties != null)
    795                   {
    796                     for (ExtendedProperty ep : reporterProperties)
     790                  ReporterData reporter = item.getReporter();
     791                  if (reporter == null)
     792                  {
     793                    %>
     794                    <tbl:cell column="reporter.name"><i>- none -</i></tbl:cell>
     795                    <tbl:cell column="reporter.externalId"><i>- none -</i></tbl:cell>
     796                    <%
     797                  }
     798                  else
     799                  {
     800                    %>
     801                    <tbl:cell column="reporter.name"><%=Base.getLink(ID, reporter.getName(), Item.REPORTER, reporter.getId(), writeReporterPermission)%></tbl:cell>
     802                    <tbl:cell column="reporter.externalId"><%=HTML.encodeTags(reporter.getExternalId())%></tbl:cell>
     803                    <tbl:cell column="reporter.symbol"><%=HTML.encodeTags(reporter.getSymbol())%></tbl:cell>
     804                    <tbl:cell column="reporter.description"><%=HTML.encodeTags(reporter.getDescription())%></tbl:cell>
     805                    <tbl:cell column="reporter.lastUpdate" value="<%=reporter.getLastUpdate()%>" />
     806                    <tbl:cell column="reporter.reporterType"><base:propertyvalue dbcontrol="<%=dc%>" item="<%=reporter%>" property="reporterType.name" /></tbl:cell>
     807                    <%
     808                    if (reporterProperties != null)
    797809                    {
    798                       String name = ep.getName();
    799                       %>
    800                       <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
    801                       <%
     810                      for (ExtendedProperty ep : reporterProperties)
     811                      {
     812                        String name = ep.getName();
     813                        %>
     814                        <tbl:cell column="<%="reporter."+name%>"><tbl:cellvalue value="<%=reporter.getExtended(name)%>" /></tbl:cell>
     815                        <%
     816                      }
    802817                    }
    803818                  }
  • trunk/www/views/rawbioassays/rawdata/view_rawdata.jsp

    r6520 r7014  
    7474try
    7575{
     76  final boolean readReporter = !sc.hasPermission(Permission.DENIED, Item.REPORTER);
    7677  final RawBioAssay rawBioAssay = RawBioAssay.getById(dc, rawBioAssayId);
    7778  final RawDataType rawDataType = rawBioAssay.getRawDataType();
     
    8586  String title = "Raw data of "+HTML.encodeTags(rawBioAssay.getName()) + " at position " + rawData.getPosition();
    8687 
    87   final ReporterData reporter = rawData.getReporter();
     88  final ReporterData reporter = readReporter ? rawData.getReporter() : null;
    8889  final FeatureData feature = rawData.getFeature();
    8990  Formatter<Date> dateFormatter = FormatterFactory.getDateTimeFormatter(sc);
     
    198199   
    199200    </t:tab>
    200    
    201     <%
    202     if (reporter != null)
    203     {
    204       boolean readCurrentReporterType = true;
    205       ReporterType currentReporterType = null;
    206       try
    207       {
    208         currentReporterType = Reporter.getReporterType(dc, reporter);
    209       }
    210       catch (PermissionDeniedException ex)
    211       {
    212         readCurrentReporterType = false;
    213       }
    214       %>
    215       <t:tab id="reporter" title="Reporter" >
     201    <t:tab id="reporter" title="Reporter" >
     202      <%
     203      if (reporter == null)
     204      {
     205        %>
     206        <table class="fullcc bg-filled-50"><tr><td>
     207        <b><%=readReporter ? "No reporter" : "Denied" %></b>
     208        </td></tr></table>
     209        <%
     210      }
     211      else
     212      {
     213        boolean readCurrentReporterType = true;
     214        ReporterType currentReporterType = null;
     215        try
     216        {
     217          currentReporterType = Reporter.getReporterType(dc, reporter);
     218        }
     219        catch (PermissionDeniedException ex)
     220        {
     221          readCurrentReporterType = false;
     222        }
     223        %>
    216224        <table class="fullform outlined">
    217225        <tbody class="sectionheader">
     
    283291        </tbody>
    284292        </table>
    285       </t:tab>
    286       <%
    287     }
    288     %>
     293        <%
     294      }
     295      %>
     296    </t:tab>
    289297    <%
    290298    if (feature != null)
Note: See TracChangeset for help on using the changeset viewer.