Changeset 3547


Ignore:
Timestamp:
Jul 3, 2007, 11:41:22 AM (14 years ago)
Author:
Martin Svensson
Message:

References #375. The first part is done, listing which users/groups/projects an item is shared to

Location:
trunk
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/clients/web/net/sf/basedb/clients/web/PermissionUtil.java

    r2916 r3547  
    203203  }
    204204 
     205  public static String translatePermissionsToString(Set<Permission> permissions)
     206  {
     207    StringBuilder permissionString = new StringBuilder();
     208    permissionString.append(permissions.contains(Permission.READ) ? "R" : "");
     209    permissionString.append(permissions.contains(Permission.USE) ? "U" : "");
     210    permissionString.append(permissions.contains(Permission.WRITE) ? "W" : "");
     211    permissionString.append(permissions.contains(Permission.DELETE) ? "D" : "");
     212    permissionString.append(permissions.contains(Permission.SET_OWNER) ? "O" : "");
     213    permissionString.append(permissions.contains(Permission.SET_PERMISSION) ? "P" : "");
     214    return permissionString.toString();
     215  }
     216 
    205217}
    206218
  • trunk/www/admin/annotationtypecategories/view_category.jsp

    r2978 r3547  
    2828  import="net.sf.basedb.core.SessionControl"
    2929  import="net.sf.basedb.core.DbControl"
     30  import="net.sf.basedb.core.Group"
    3031  import="net.sf.basedb.core.Include"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
    3334  import="net.sf.basedb.core.ItemQuery"
     35  import="net.sf.basedb.core.ItemResultIterator"
    3436  import="net.sf.basedb.core.ItemResultList"
    3537  import="net.sf.basedb.core.AnnotationTypeCategory"
     
    3739  import="net.sf.basedb.core.query.Orders"
    3840  import="net.sf.basedb.core.query.Hql"
     41  import="net.sf.basedb.core.MultiPermissions"
    3942  import="net.sf.basedb.core.Permission"
    4043  import="net.sf.basedb.core.PermissionDeniedException"
     
    4245  import="net.sf.basedb.core.plugin.GuiContext"
    4346  import="net.sf.basedb.core.plugin.Plugin"
     47  import="net.sf.basedb.core.Project"
    4448  import="net.sf.basedb.core.User"
    4549  import="net.sf.basedb.clients.web.Base"
     50  import="net.sf.basedb.clients.web.PermissionUtil"
    4651  import="net.sf.basedb.clients.web.util.HTML"
    4752  import="net.sf.basedb.util.Values"
     53  import="java.util.Collections"
    4854  import="java.util.Map"
     55  import="java.util.Set"
    4956%>
    5057<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    195202            visible="<%=annotationTypeCategory.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    196203          <base:icon image="shared.gif"
    197             visible="<%=annotationTypeCategory.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     204            visible="<%=annotationTypeCategory.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    198205        </div>
    199206        <%
     
    276283        </tbl:table>
    277284        <%
     285      }     
     286     
     287      // Tables with users/groups/projects that this item is shared to
     288      MultiPermissions mp = new MultiPermissions(Collections.singleton(annotationTypeCategory));
     289      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     290      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     291      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     292     
     293      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     294      {
     295        %>
     296        <h4 class="docked">Shared to</h4>
     297        <tbl:table
     298          id="itemsSharedTo"
     299          clazz="itemlist"
     300          columns="all"
     301        >
     302          <tbl:columndef
     303            id="itemType"
     304            title="Item type"
     305          />
     306          <tbl:columndef
     307            id="name"
     308            title="Name"
     309          />
     310          <tbl:columndef
     311            id="permissions"
     312            title="Permissions"
     313          />
     314          <tbl:data>
     315            <tbl:columns>
     316            </tbl:columns>
     317            <tbl:rows>
     318            <%
     319            while(projects.hasNext())
     320            {
     321              Project project = projects.next();
     322              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     323              %>     
     324              <tbl:row>
     325                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     326                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     327                <tbl:cell column="permissions">
     328                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     329                </tbl:cell>
     330              </tbl:row>
     331              <%
     332            }
     333            while(groups.hasNext())
     334            {
     335              Group group = groups.next();
     336              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     337              %>
     338              <tbl:row>             
     339                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     340                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     341                <tbl:cell column="permissions">
     342                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     343                </tbl:cell>
     344              </tbl:row>
     345              <% 
     346            }
     347            while (users.hasNext())
     348            {
     349              User user = users.next();
     350              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     351              %>
     352              <tbl:row>             
     353                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     354                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     355                <tbl:cell column="permissions">
     356                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     357                </tbl:cell>
     358              </tbl:row>
     359              <%
     360            }
     361            %>
     362            </tbl:rows>
     363          </tbl:data>
     364        </tbl:table>
     365        <%
     366      }
     367      else
     368      {
     369        %>
     370        <h4>Shared to</h4>
     371        This annotation type category is not shared
     372        (or, you don't have permission to view the ones it is shared to).
     373        <%
    278374      }
    279375      %>
  • trunk/www/admin/annotationtypes/view_annotationtype.jsp

    r2978 r3547  
    3939  import="net.sf.basedb.core.ItemQuery"
    4040  import="net.sf.basedb.core.ItemResultList"
     41  import="net.sf.basedb.core.ItemResultIterator"
     42  import="net.sf.basedb.core.MultiPermissions"
     43  import="net.sf.basedb.core.Group"
     44  import="net.sf.basedb.core.Project"
    4145  import="net.sf.basedb.core.PermissionDeniedException"
    4246  import="net.sf.basedb.core.PluginDefinition"
     
    5256  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
    5357  import="java.util.Map"
     58  import="java.util.Collections"
    5459  import="java.util.Date"
     60  import="java.util.Set"
    5561%>
    5662<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    203209            visible="<%=annotationType.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    204210          <base:icon image="shared.gif"
    205             visible="<%=annotationType.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     211            visible="<%=annotationType.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    206212        </div>
    207213        <%
     
    310316        <%
    311317      }
     318
     319      // Tables with users/groups/projects that this item is shared to
     320      MultiPermissions mp = new MultiPermissions(Collections.singleton(annotationType));
     321      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     322      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     323      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     324     
     325      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     326      {
     327        %>
     328        <h4 class="docked">Shared to</h4>
     329        <tbl:table
     330          id="itemsSharedTo"
     331          clazz="itemlist"
     332          columns="all"
     333        >
     334          <tbl:columndef
     335            id="itemType"
     336            title="Item type"
     337          />
     338          <tbl:columndef
     339            id="name"
     340            title="Name"
     341          />
     342          <tbl:columndef
     343            id="permissions"
     344            title="Permissions"
     345          />
     346          <tbl:data>
     347            <tbl:columns>
     348            </tbl:columns>
     349            <tbl:rows>
     350            <%
     351            while(projects.hasNext())
     352            {
     353              Project project = projects.next();
     354              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     355              %>     
     356              <tbl:row>
     357                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     358                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     359                <tbl:cell column="permissions">
     360                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     361                </tbl:cell>
     362              </tbl:row>
     363              <%
     364            }
     365            while(groups.hasNext())
     366            {
     367              Group group = groups.next();
     368              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     369              %>
     370              <tbl:row>             
     371                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     372                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     373                <tbl:cell column="permissions">
     374                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     375                </tbl:cell>
     376              </tbl:row>
     377              <% 
     378            }
     379            while (users.hasNext())
     380            {
     381              User user = users.next();
     382              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     383              %>
     384              <tbl:row>             
     385                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     386                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     387                <tbl:cell column="permissions">
     388                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     389                </tbl:cell>
     390              </tbl:row>
     391              <%
     392            }
     393            %>
     394            </tbl:rows>
     395          </tbl:data>
     396        </tbl:table>
     397        <%
     398      }
     399      else
     400      {
     401        %>
     402        <h4>Shared to</h4>
     403        This annotation type is not shared
     404        (or, you don't have permission to view the ones it is shared to).
     405        <%
     406      }
    312407      %>
    313408     
  • trunk/www/admin/clients/view_client.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.Client"
    3537  import="net.sf.basedb.core.User"
     38  import="net.sf.basedb.core.MultiPermissions"
    3639  import="net.sf.basedb.core.PermissionDeniedException"
    3740  import="net.sf.basedb.core.PluginDefinition"
    3841  import="net.sf.basedb.core.plugin.GuiContext"
    3942  import="net.sf.basedb.core.plugin.Plugin"
     43  import="net.sf.basedb.core.Project"
    4044  import="net.sf.basedb.clients.web.Base"
    4145  import="net.sf.basedb.clients.web.PermissionUtil"
    4246  import="net.sf.basedb.clients.web.util.HTML"
    4347  import="net.sf.basedb.util.Values"
     48  import="java.util.Collections"
    4449  import="java.util.Map"
     50  import="java.util.Set"
    4551%>
    4652<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    7379  %>
    7480  <base:page title="<%=title%>">
    75   <base:head scripts="tabcontrol.js" styles="toolbar.css,headertabcontrol.css,path.css">
     81  <base:head scripts="table.js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
    7682    <script language="JavaScript">
    7783    function editItem()
     
    207213            visible="<%=client.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    208214          <base:icon image="shared.gif"
    209             visible="<%=client.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     215            visible="<%=client.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    210216        </div>
    211217        <%
    212218      }
    213219      %>
    214       <table class="form" cellspacing=0>
     220      <table class="form" cellspacing="0">
    215221      <tr>
    216222        <td class="prompt">Name</td>
     
    230236      </tr>
    231237      </table>
     238      <%
     239      // Tables with users/groups/projects that this item is shared to
     240      MultiPermissions mp = new MultiPermissions(Collections.singleton(client));
     241      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     242      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     243      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     244     
     245      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     246      {
     247        %>
     248        <h4 class="docked">Shared to</h4>
     249        <tbl:table
     250          id="itemsSharedTo"
     251          clazz="itemlist"
     252          columns="all"
     253        >
     254          <tbl:columndef
     255            id="itemType"
     256            title="Item type"
     257          />
     258          <tbl:columndef
     259            id="name"
     260            title="Name"
     261          />
     262          <tbl:columndef
     263            id="permissions"
     264            title="Permissions"
     265          />
     266          <tbl:data>
     267            <tbl:columns>
     268            </tbl:columns>
     269            <tbl:rows>
     270            <%
     271            while(projects.hasNext())
     272            {
     273              Project project = projects.next();
     274              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     275              %>     
     276              <tbl:row>
     277                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     278                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     279                <tbl:cell column="permissions">
     280                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     281                </tbl:cell>
     282              </tbl:row>
     283              <%
     284            }
     285            while(groups.hasNext())
     286            {
     287              Group group = groups.next();
     288              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     289              %>
     290              <tbl:row>             
     291                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     292                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     293                <tbl:cell column="permissions">
     294                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     295                </tbl:cell>
     296              </tbl:row>
     297              <% 
     298            }
     299            while (users.hasNext())
     300            {
     301              User user = users.next();
     302              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     303              %>
     304              <tbl:row>             
     305                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     306                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     307                <tbl:cell column="permissions">
     308                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     309                </tbl:cell>
     310              </tbl:row>
     311              <%
     312            }
     313            %>
     314            </tbl:rows>
     315          </tbl:data>
     316        </tbl:table>
     317        <%
     318      }
     319      else
     320      {
     321        %>
     322        <h4>Shared to</h4>
     323        This client is not shared
     324        (or, you don't have permission to view the ones it is shared to).
     325        <%
     326      }
     327      %>
    232328     
    233329    </div>
  • trunk/www/admin/hardware/view_hardware.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.Hardware"
    3537  import="net.sf.basedb.core.HardwareType"
    3638  import="net.sf.basedb.core.User"
     39  import="net.sf.basedb.core.MultiPermissions"
    3740  import="net.sf.basedb.core.PermissionDeniedException"
    3841  import="net.sf.basedb.core.PluginDefinition"
    3942  import="net.sf.basedb.core.plugin.GuiContext"
    4043  import="net.sf.basedb.core.plugin.Plugin"
     44  import="net.sf.basedb.core.Project"
    4145  import="net.sf.basedb.clients.web.Base"
    4246  import="net.sf.basedb.clients.web.PermissionUtil"
    4347  import="net.sf.basedb.clients.web.util.HTML"
    4448  import="net.sf.basedb.util.Values"
     49  import="java.util.Collections"
    4550  import="java.util.Map"
     51  import="java.util.Set"
    4652%>
    4753<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    7480  %>
    7581  <base:page title="<%=title%>">
    76   <base:head scripts="tabcontrol.js" styles="toolbar.css,headertabcontrol.css,path.css">
     82  <base:head scripts="table,js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
    7783    <script language="JavaScript">
    7884    function editItem()
     
    193199            visible="<%=hardware.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    194200          <base:icon image="shared.gif"
    195             visible="<%=hardware.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     201            visible="<%=hardware.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    196202        </div>
    197203        <%
     
    220226      </tr>
    221227      </table>
     228      <%     
    222229     
     230      // Tables with users/groups/projects that this item is shared to
     231      MultiPermissions mp = new MultiPermissions(Collections.singleton(hardware));
     232      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     233      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     234      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     235     
     236      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     237      {
     238        %>
     239        <h4 class="docked">Shared to</h4>
     240        <tbl:table
     241          id="itemsSharedTo"
     242          clazz="itemlist"
     243          columns="all"
     244        >
     245          <tbl:columndef
     246            id="itemType"
     247            title="Item type"
     248          />
     249          <tbl:columndef
     250            id="name"
     251            title="Name"
     252          />
     253          <tbl:columndef
     254            id="permissions"
     255            title="Permissions"
     256          />
     257          <tbl:data>
     258            <tbl:columns>
     259            </tbl:columns>
     260            <tbl:rows>
     261            <%
     262            while(projects.hasNext())
     263            {
     264              Project project = projects.next();
     265              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     266              %>     
     267              <tbl:row>
     268                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     269                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     270                <tbl:cell column="permissions">
     271                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     272                </tbl:cell>
     273              </tbl:row>
     274              <%
     275            }
     276            while(groups.hasNext())
     277            {
     278              Group group = groups.next();
     279              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     280              %>
     281              <tbl:row>             
     282                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     283                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     284                <tbl:cell column="permissions">
     285                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     286                </tbl:cell>
     287              </tbl:row>
     288              <% 
     289            }
     290            while (users.hasNext())
     291            {
     292              User user = users.next();
     293              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     294              %>
     295              <tbl:row>             
     296                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     297                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     298                <tbl:cell column="permissions">
     299                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     300                </tbl:cell>
     301              </tbl:row>
     302              <%
     303            }
     304            %>
     305            </tbl:rows>
     306          </tbl:data>
     307        </tbl:table>
     308        <%
     309      }
     310      else
     311      {
     312        %>
     313        <h4>Shared to</h4>
     314        This hardware is not shared
     315        (or, you don't have permission to view the ones it is shared to).
     316        <%
     317      }
     318      %>
    223319    </div>
    224320      </t:tab>
  • trunk/www/admin/jobagents/view_agent.jsp

    r2978 r3547  
    4141  import="net.sf.basedb.core.ItemQuery"
    4242  import="net.sf.basedb.core.ItemResultList"
     43  import="net.sf.basedb.core.ItemResultIterator"
     44  import="net.sf.basedb.core.MultiPermissions"
     45  import="net.sf.basedb.core.Group"
     46  import="net.sf.basedb.core.Project"
    4347  import="net.sf.basedb.core.query.Orders"
    4448  import="net.sf.basedb.core.query.Hql"
     
    5559  import="java.util.Set"
    5660  import="java.util.Date"
     61  import="java.util.Collections"
    5762%>
    5863<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    492497        <%
    493498      }
     499     
     500      // Tables with users/groups/projects that this item is shared to
     501      MultiPermissions mp = new MultiPermissions(Collections.singleton(agent));
     502      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     503      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     504      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     505     
     506      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     507      {
     508        %>
     509        <h4 class="docked">Shared to</h4>
     510        <tbl:table
     511          id="itemsSharedTo"
     512          clazz="itemlist"
     513          columns="all"
     514        >
     515          <tbl:columndef
     516            id="itemType"
     517            title="Item type"
     518          />
     519          <tbl:columndef
     520            id="name"
     521            title="Name"
     522          />
     523          <tbl:columndef
     524            id="permissions"
     525            title="Permissions"
     526          />
     527          <tbl:data>
     528            <tbl:columns>
     529            </tbl:columns>
     530            <tbl:rows>
     531            <%
     532            while(projects.hasNext())
     533            {
     534              Project project = projects.next();
     535              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     536              %>     
     537              <tbl:row>
     538                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     539                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     540                <tbl:cell column="permissions">
     541                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     542                </tbl:cell>
     543              </tbl:row>
     544              <%
     545            }
     546            while(groups.hasNext())
     547            {
     548              Group group = groups.next();
     549              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     550              %>
     551              <tbl:row>             
     552                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     553                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     554                <tbl:cell column="permissions">
     555                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     556                </tbl:cell>
     557              </tbl:row>
     558              <% 
     559            }
     560            while (users.hasNext())
     561            {
     562              User user = users.next();
     563              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     564              %>
     565              <tbl:row>             
     566                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     567                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     568                <tbl:cell column="permissions">
     569                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     570                </tbl:cell>
     571              </tbl:row>
     572              <%
     573            }
     574            %>
     575            </tbl:rows>
     576          </tbl:data>
     577        </tbl:table>
     578        <%
     579      }
     580      else
     581      {
     582        %>
     583        <h4>Shared to</h4>
     584        This job agent is not shared
     585        (or, you don't have permission to view the ones it is shared to).
     586        <%
     587      }     
    494588      %>     
    495589     
  • trunk/www/admin/pluginconfigurations/view_configuration.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.PluginDefinition"
     
    3840  import="net.sf.basedb.core.BasicItem"
    3941  import="net.sf.basedb.core.File"
     42  import="net.sf.basedb.core.MultiPermissions"
    4043  import="net.sf.basedb.core.Nameable"
    4144  import="net.sf.basedb.core.PermissionDeniedException"
     
    4346  import="net.sf.basedb.core.plugin.GuiContext"
    4447  import="net.sf.basedb.core.plugin.Plugin"
     48  import="net.sf.basedb.core.Project"
    4549  import="net.sf.basedb.util.JarClassLoader"
    4650  import="net.sf.basedb.util.ToStringComparator"
     
    107111
    108112  <base:page title="<%=title%>">
    109   <base:head scripts="tabcontrol.js" styles="toolbar.css,headertabcontrol.css,path.css">
     113  <base:head scripts="table.js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
    110114    <script language="JavaScript">
    111115    function editItem()
     
    247251            visible="<%=configuration.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    248252          <base:icon image="shared.gif"
    249             visible="<%=configuration.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     253            visible="<%=configuration.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    250254        </div>
    251255        <%
    252256      }
    253257      %>
    254       <table class="form" cellspacing=0>
     258      <table class="form" cellspacing="0">
    255259      <tr>
    256260        <td class="prompt">Name</td>
     
    276280      </tr>
    277281      </table>
     282   
     283      <%   
     284      // Tables with users/groups/projects that this item is shared to
     285      MultiPermissions mp = new MultiPermissions(Collections.singleton(configuration));
     286      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     287      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     288      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     289     
     290      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     291      {
     292        %>
     293        <h4 class="docked">Shared to</h4>
     294        <tbl:table
     295          id="itemsSharedTo"
     296          clazz="itemlist"
     297          columns="all"
     298        >
     299          <tbl:columndef
     300            id="itemType"
     301            title="Item type"
     302          />
     303          <tbl:columndef
     304            id="name"
     305            title="Name"
     306          />
     307          <tbl:columndef
     308            id="permissions"
     309            title="Permissions"
     310          />
     311          <tbl:data>
     312            <tbl:columns>
     313            </tbl:columns>
     314            <tbl:rows>
     315            <%
     316            while(projects.hasNext())
     317            {
     318              Project project = projects.next();
     319              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     320              %>     
     321              <tbl:row>
     322                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     323                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     324                <tbl:cell column="permissions">
     325                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     326                </tbl:cell>
     327              </tbl:row>
     328              <%
     329            }
     330            while(groups.hasNext())
     331            {
     332              Group group = groups.next();
     333              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     334              %>
     335              <tbl:row>             
     336                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     337                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     338                <tbl:cell column="permissions">
     339                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     340                </tbl:cell>
     341              </tbl:row>
     342              <% 
     343            }
     344            while (users.hasNext())
     345            {
     346              User user = users.next();
     347              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     348              %>
     349              <tbl:row>             
     350                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     351                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     352                <tbl:cell column="permissions">
     353                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     354                </tbl:cell>
     355              </tbl:row>
     356              <%
     357            }
     358            %>
     359            </tbl:rows>
     360          </tbl:data>
     361        </tbl:table>
     362        <%
     363      }
     364      else
     365      {
     366        %>
     367        <h4>Shared to</h4>
     368        This configuration is not shared
     369        (or, you don't have permission to view the ones it is shared to).
     370        <%
     371      }
     372      %>
    278373    </div>
    279374
     
    282377      <t:tab id="parameters" title="Configuration parameters" >
    283378      <div class="boxed">
    284       <table class="form" cellspacing=0>
     379      <table class="form" cellspacing="0">
    285380      <%
    286381      if (plugin != null)
  • trunk/www/admin/plugindefinitions/view_plugin.jsp

    r3501 r3547  
    3434  import="net.sf.basedb.core.PluginDefinition"
    3535  import="net.sf.basedb.core.PluginConfiguration"
     36  import="net.sf.basedb.core.Group"
    3637  import="net.sf.basedb.core.JobAgent"
    3738  import="net.sf.basedb.core.JobAgentSettings"
     
    3940  import="net.sf.basedb.core.Include"
    4041  import="net.sf.basedb.core.ItemQuery"
     42  import="net.sf.basedb.core.ItemResultIterator"
    4143  import="net.sf.basedb.core.ItemResultList"
     44  import="net.sf.basedb.core.MultiPermissions"
    4245  import="net.sf.basedb.core.PermissionDeniedException"
    4346  import="net.sf.basedb.core.BaseException"
     
    4548  import="net.sf.basedb.core.plugin.GuiContext"
    4649  import="net.sf.basedb.core.plugin.Plugin"
     50  import="net.sf.basedb.core.Project"
    4751  import="net.sf.basedb.core.query.Restrictions"
    4852  import="net.sf.basedb.core.query.Orders"
     
    5458  import="net.sf.basedb.clients.web.util.HTML"
    5559  import="net.sf.basedb.util.Values"
     60  import="java.util.Collections"
    5661  import="java.util.List"
    5762  import="java.util.Map"
     
    266271            visible="<%=plugin.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    267272          <base:icon image="shared.gif"
    268             visible="<%=plugin.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     273            visible="<%=plugin.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    269274        </div>
    270275        <%
     
    279284      }
    280285      %>
    281       <table class="form" cellspacing=0>
     286      <table class="form" cellspacing="0">
    282287      <tr>
    283288        <td class="prompt">Name</td>
     
    514519        </tbl:table>
    515520        <%
     521      }     
     522     
     523      // Tables with users/groups/projects that this item is shared to
     524      MultiPermissions mp = new MultiPermissions(Collections.singleton(plugin));
     525      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     526      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     527      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     528     
     529      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     530      {
     531        %>
     532        <h4 class="docked">Shared to</h4>
     533        <tbl:table
     534          id="itemsSharedTo"
     535          clazz="itemlist"
     536          columns="all"
     537        >
     538          <tbl:columndef
     539            id="itemType"
     540            title="Item type"
     541          />
     542          <tbl:columndef
     543            id="name"
     544            title="Name"
     545          />
     546          <tbl:columndef
     547            id="permissions"
     548            title="Permissions"
     549          />
     550          <tbl:data>
     551            <tbl:columns>
     552            </tbl:columns>
     553            <tbl:rows>
     554            <%
     555            while(projects.hasNext())
     556            {
     557              Project project = projects.next();
     558              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     559              %>     
     560              <tbl:row>
     561                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     562                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     563                <tbl:cell column="permissions">
     564                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     565                </tbl:cell>
     566              </tbl:row>
     567              <%
     568            }
     569            while(groups.hasNext())
     570            {
     571              Group group = groups.next();
     572              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     573              %>
     574              <tbl:row>             
     575                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     576                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     577                <tbl:cell column="permissions">
     578                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     579                </tbl:cell>
     580              </tbl:row>
     581              <% 
     582            }
     583            while (users.hasNext())
     584            {
     585              User user = users.next();
     586              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     587              %>
     588              <tbl:row>             
     589                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     590                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     591                <tbl:cell column="permissions">
     592                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     593                </tbl:cell>
     594              </tbl:row>
     595              <%
     596            }
     597            %>
     598            </tbl:rows>
     599          </tbl:data>
     600        </tbl:table>
     601        <%
     602      }
     603      else
     604      {
     605        %>
     606        <h4>Shared to</h4>
     607        This plugin is not shared
     608        (or, you don't have permission to view the ones it is shared to).
     609        <%
    516610      }
    517611      %>
    518612      <br>
    519613      <h4>Permissions</h4>
    520         <table class="form" cellspacing=0>
     614        <table class="form" cellspacing="0">
    521615        <tr>
    522616          <td class="prompt">Using permissions</td>
  • trunk/www/admin/protocols/view_protocol.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     
    4041  import="net.sf.basedb.core.PluginDefinition"
    4142  import="net.sf.basedb.core.ItemQuery"
     43  import="net.sf.basedb.core.ItemResultIterator"
    4244  import="net.sf.basedb.core.ItemResultList"
    4345  import="net.sf.basedb.core.Include"
     46  import="net.sf.basedb.core.MultiPermissions"
    4447  import="net.sf.basedb.core.plugin.GuiContext"
    4548  import="net.sf.basedb.core.plugin.Plugin"
     49  import="net.sf.basedb.core.Project"
    4650  import="net.sf.basedb.core.query.Orders"
    4751  import="net.sf.basedb.core.query.Hql"
     
    5054  import="net.sf.basedb.clients.web.util.HTML"
    5155  import="net.sf.basedb.util.Values"
     56  import="java.util.Collections"
    5257  import="java.util.Map"
     58  import="java.util.Set"
    5359%>
    5460<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    200206            visible="<%=protocol.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    201207          <base:icon image="shared.gif"
    202             visible="<%=protocol.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     208            visible="<%=protocol.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    203209        </div>
    204210        <%
    205211      }
    206212      %>
    207       <table class="form" cellspacing=0>
     213      <table class="form" cellspacing="0">
    208214      <tr>
    209215        <td class="prompt">Name</td>
     
    286292        </tbl:table>
    287293        <%
     294      }     
     295     
     296      // Tables with users/groups/projects that this item is shared to
     297      MultiPermissions mp = new MultiPermissions(Collections.singleton(protocol));
     298      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     299      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     300      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     301     
     302      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     303      {
     304        %>
     305        <h4 class="docked">Shared to</h4>
     306        <tbl:table
     307          id="itemsSharedTo"
     308          clazz="itemlist"
     309          columns="all"
     310        >
     311          <tbl:columndef
     312            id="itemType"
     313            title="Item type"
     314          />
     315          <tbl:columndef
     316            id="name"
     317            title="Name"
     318          />
     319          <tbl:columndef
     320            id="permissions"
     321            title="Permissions"
     322          />
     323          <tbl:data>
     324            <tbl:columns>
     325            </tbl:columns>
     326            <tbl:rows>
     327            <%
     328            while(projects.hasNext())
     329            {
     330              Project project = projects.next();
     331              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     332              %>     
     333              <tbl:row>
     334                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     335                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     336                <tbl:cell column="permissions">
     337                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     338                </tbl:cell>
     339              </tbl:row>
     340              <%
     341            }
     342            while(groups.hasNext())
     343            {
     344              Group group = groups.next();
     345              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     346              %>
     347              <tbl:row>             
     348                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     349                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     350                <tbl:cell column="permissions">
     351                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     352                </tbl:cell>
     353              </tbl:row>
     354              <% 
     355            }
     356            while (users.hasNext())
     357            {
     358              User user = users.next();
     359              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     360              %>
     361              <tbl:row>             
     362                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     363                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     364                <tbl:cell column="permissions">
     365                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     366                </tbl:cell>
     367              </tbl:row>
     368              <%
     369            }
     370            %>
     371            </tbl:rows>
     372          </tbl:data>
     373        </tbl:table>
     374        <%
     375      }
     376      else
     377      {
     378        %>
     379        <h4>Shared to</h4>
     380        This protocol is not shared
     381        (or, you don't have permission to view the ones it is shared to).
     382        <%
    288383      }
    289384      %> 
  • trunk/www/admin/software/view_software.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.Software"
    3537  import="net.sf.basedb.core.SoftwareType"
    3638  import="net.sf.basedb.core.User"
     39  import="net.sf.basedb.core.MultiPermissions"
    3740  import="net.sf.basedb.core.PermissionDeniedException"
    3841  import="net.sf.basedb.core.PluginDefinition"
    3942  import="net.sf.basedb.core.plugin.GuiContext"
    4043  import="net.sf.basedb.core.plugin.Plugin"
     44  import="net.sf.basedb.core.Project"
    4145  import="net.sf.basedb.clients.web.Base"
    4246  import="net.sf.basedb.clients.web.PermissionUtil"
    4347  import="net.sf.basedb.clients.web.util.HTML"
    4448  import="net.sf.basedb.util.Values"
     49  import="java.util.Collections"
    4550  import="java.util.Map"
     51  import="java.util.Set"
    4652%>
    4753<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    7480  %>
    7581  <base:page title="<%=title%>">
    76   <base:head scripts="tabcontrol.js" styles="toolbar.css,headertabcontrol.css,path.css">
     82  <base:head scripts="table.js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
    7783    <script language="JavaScript">
    7884    function editItem()
     
    192198            visible="<%=software.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    193199          <base:icon image="shared.gif"
    194             visible="<%=software.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     200            visible="<%=software.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    195201        </div>
    196202        <%
    197203      }
    198204      %>
    199       <table class="form" cellspacing=0>
     205      <table class="form" cellspacing="0">
    200206      <tr>
    201207        <td class="prompt">Name</td>
     
    219225      </tr>
    220226      </table>
     227      <%     
     228     
     229      // Tables with users/groups/projects that this item is shared to
     230      MultiPermissions mp = new MultiPermissions(Collections.singleton(software));
     231      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     232      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     233      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     234     
     235      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     236      {
     237        %>
     238        <h4 class="docked">Shared to</h4>
     239        <tbl:table
     240          id="itemsSharedTo"
     241          clazz="itemlist"
     242          columns="all"
     243        >
     244          <tbl:columndef
     245            id="itemType"
     246            title="Item type"
     247          />
     248          <tbl:columndef
     249            id="name"
     250            title="Name"
     251          />
     252          <tbl:columndef
     253            id="permissions"
     254            title="Permissions"
     255          />
     256          <tbl:data>
     257            <tbl:columns>
     258            </tbl:columns>
     259            <tbl:rows>
     260            <%
     261            while(projects.hasNext())
     262            {
     263              Project project = projects.next();
     264              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     265              %>     
     266              <tbl:row>
     267                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     268                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     269                <tbl:cell column="permissions">
     270                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     271                </tbl:cell>
     272              </tbl:row>
     273              <%
     274            }
     275            while(groups.hasNext())
     276            {
     277              Group group = groups.next();
     278              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     279              %>
     280              <tbl:row>             
     281                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     282                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     283                <tbl:cell column="permissions">
     284                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     285                </tbl:cell>
     286              </tbl:row>
     287              <% 
     288            }
     289            while (users.hasNext())
     290            {
     291              User user = users.next();
     292              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     293              %>
     294              <tbl:row>             
     295                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     296                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     297                <tbl:cell column="permissions">
     298                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     299                </tbl:cell>
     300              </tbl:row>
     301              <%
     302            }
     303            %>
     304            </tbl:rows>
     305          </tbl:data>
     306        </tbl:table>
     307        <%
     308      }
     309      else
     310      {
     311        %>
     312        <h4>Shared to</h4>
     313        This software is not shared
     314        (or, you don't have permission to view the ones it is shared to).
     315        <%
     316      }
     317      %>
    221318
    222319    </div>
  • trunk/www/biomaterials/biosources/view_biosource.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.Nameable"
    3335  import="net.sf.basedb.core.Permission"
     36  import="net.sf.basedb.core.MultiPermissions"
    3437  import="net.sf.basedb.core.BioSource"
    3538  import="net.sf.basedb.core.Sample"
     
    3841  import="net.sf.basedb.core.ItemQuery"
    3942  import="net.sf.basedb.core.ItemResultList"
     43  import="net.sf.basedb.core.ItemResultIterator"
    4044  import="net.sf.basedb.core.PermissionDeniedException"
    4145  import="net.sf.basedb.core.PluginDefinition"
    4246  import="net.sf.basedb.core.plugin.GuiContext"
     47  import="net.sf.basedb.core.Project"
    4348  import="net.sf.basedb.core.query.Orders"
    4449  import="net.sf.basedb.core.query.Hql"
    4550  import="net.sf.basedb.core.plugin.Plugin"
     51  import="net.sf.basedb.core.SharedItem"
    4652  import="net.sf.basedb.clients.web.Base"
    4753  import="net.sf.basedb.clients.web.PermissionUtil"
    4854  import="net.sf.basedb.clients.web.util.HTML"
    4955  import="net.sf.basedb.util.Values"
     56  import="net.sf.basedb.util.ShareableUtil"
     57  import="net.sf.basedb.clients.web.PermissionUtil"
     58  import="java.util.Collections"
    5059  import="java.util.Date"
    5160  import="java.util.Map"
     
    215224            visible="<%=bioSource.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    216225          <base:icon image="shared.gif"
    217             visible="<%=bioSource.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     226            visible="<%=bioSource.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    218227        </div>
    219228        <%
    220229      }
    221230      %>
    222       <table class="form" cellspacing=0>
     231      <table class="form" cellspacing="0">
    223232      <tr>
    224233        <td class="prompt">Name</td>
     
    288297        </tbl:table>
    289298        <%
     299      }     
     300     
     301      // Tables with users/groups/projects that this item is shared to
     302      MultiPermissions mp = new MultiPermissions(Collections.singleton(bioSource));
     303      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     304      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     305      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     306     
     307      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     308      {
     309        %>
     310        <h4 class="docked">Shared to</h4>
     311        <tbl:table
     312          id="itemsSharedTo"
     313          clazz="itemlist"
     314          columns="all"
     315        >
     316          <tbl:columndef
     317            id="itemType"
     318            title="Item type"
     319          />
     320          <tbl:columndef
     321            id="name"
     322            title="Name"
     323          />
     324          <tbl:columndef
     325            id="permissions"
     326            title="Permissions"
     327          />
     328          <tbl:data>
     329            <tbl:columns>
     330            </tbl:columns>
     331            <tbl:rows>
     332            <%
     333            while(projects.hasNext())
     334            {
     335              Project project = projects.next();
     336              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     337              %>     
     338              <tbl:row>
     339                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     340                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     341                <tbl:cell column="permissions">
     342                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     343                </tbl:cell>
     344              </tbl:row>
     345              <%
     346            }
     347            while(groups.hasNext())
     348            {
     349              Group group = groups.next();
     350              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     351              %>
     352              <tbl:row>             
     353                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     354                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     355                <tbl:cell column="permissions">
     356                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     357                </tbl:cell>
     358              </tbl:row>
     359              <% 
     360            }
     361            while (users.hasNext())
     362            {
     363              User user = users.next();
     364              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     365              %>
     366              <tbl:row>             
     367                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     368                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     369                <tbl:cell column="permissions">
     370                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     371                </tbl:cell>
     372              </tbl:row>
     373              <%
     374            }
     375            %>
     376            </tbl:rows>
     377          </tbl:data>
     378        </tbl:table>
     379        <%
    290380      }
     381      else
     382      {
     383        %>
     384        <h4>Shared to</h4>
     385        This biosource is not shared
     386        (or, you don't have permission to view the ones it is shared to).
     387        <%
     388      }     
    291389      %>
    292390 
  • trunk/www/biomaterials/extracts/view_extract.jsp

    r2992 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.Extract"
     
    3638  import="net.sf.basedb.core.Sample"
    3739  import="net.sf.basedb.core.BioMaterialEvent"
     40  import="net.sf.basedb.core.MultiPermissions"
    3841  import="net.sf.basedb.core.Protocol"
     42  import="net.sf.basedb.core.Project"
    3943  import="net.sf.basedb.core.User"
    4044  import="net.sf.basedb.core.ItemQuery"
     
    5660  import="net.sf.basedb.util.formatter.Formatter"
    5761  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
     62  import="java.util.Collections"
    5863  import="java.util.Date"
    5964  import="java.util.Map"
     
    240245            visible="<%=extract.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    241246          <base:icon image="shared.gif"
    242             visible="<%=extract.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     247            visible="<%=extract.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    243248        </div>
    244249        <%
    245250      }
    246251      %>
    247       <table class="form" cellspacing=0>
     252      <table class="form" cellspacing="0">
    248253      <tr>
    249254        <td class="prompt">Name</td>
     
    409414        </tbl:table>
    410415        <%
    411       }
     416      }     
     417             
     418      MultiPermissions mp = new MultiPermissions(Collections.singleton(extract));
     419      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     420      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     421      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     422     
     423      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     424      {
     425        %>       
     426        <h4 class="docked">Shared to</h4>
     427        <tbl:table
     428          id="itemsSharedTo"
     429          clazz="itemlist"
     430          columns="all"
     431        >
     432          <tbl:columndef
     433            id="itemType"
     434            title="Item type"
     435          />
     436          <tbl:columndef
     437            id="name"
     438            title="Name"
     439          />
     440          <tbl:columndef
     441            id="permissions"
     442            title="Permissions"
     443          />
     444          <tbl:data>
     445            <tbl:columns>
     446            </tbl:columns>
     447            <tbl:rows>
     448            <%
     449            while(projects.hasNext())
     450            {
     451              Project project = projects.next();
     452              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     453              %>     
     454              <tbl:row>
     455                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     456                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     457                <tbl:cell column="permissions">
     458                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     459                </tbl:cell>
     460              </tbl:row>
     461              <%
     462            }
     463            while(groups.hasNext())
     464            {
     465              Group group = groups.next();
     466              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     467              %>
     468              <tbl:row>             
     469                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     470                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     471                <tbl:cell column="permissions">
     472                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     473                </tbl:cell>
     474              </tbl:row>
     475              <% 
     476            }
     477            while (users.hasNext())
     478            {
     479              User user = users.next();
     480              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     481              %>
     482              <tbl:row>             
     483                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     484                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     485                <tbl:cell column="permissions">
     486                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     487                </tbl:cell>
     488              </tbl:row>
     489              <%
     490            }
     491            %>
     492            </tbl:rows>
     493          </tbl:data>
     494        </tbl:table>
     495        <%
     496      }
     497      else
     498      {
     499        %>
     500        <h4>Shared to</h4>
     501        This extract is not shared
     502        (or, you don't have permission to view the ones it is shared to).       
     503        <%
     504      }     
    412505      %>
    413506     
  • trunk/www/biomaterials/labeledextracts/view_labeledextract.jsp

    r2992 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Hybridization"
    3233  import="net.sf.basedb.core.Item"
     
    4041  import="net.sf.basedb.core.User"
    4142  import="net.sf.basedb.core.ItemQuery"
     43  import="net.sf.basedb.core.ItemResultIterator"
    4244  import="net.sf.basedb.core.ItemResultList"
    4345  import="net.sf.basedb.core.Include"
     46  import="net.sf.basedb.core.MultiPermissions"
    4447  import="net.sf.basedb.core.query.Orders"
    4548  import="net.sf.basedb.core.query.Hql"
     
    4851  import="net.sf.basedb.core.plugin.GuiContext"
    4952  import="net.sf.basedb.core.plugin.Plugin"
     53  import="net.sf.basedb.core.Project"
    5054  import="net.sf.basedb.clients.web.Base"
    5155  import="net.sf.basedb.clients.web.PermissionUtil"
     
    5458  import="net.sf.basedb.util.formatter.Formatter"
    5559  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
     60  import="java.util.Collections"
    5661  import="java.util.Date"
    5762  import="java.util.Map"
     
    238243            visible="<%=extract.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    239244          <base:icon image="shared.gif"
    240             visible="<%=extract.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     245            visible="<%=extract.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    241246        </div>
    242247        <%
     
    409414        </tbl:table>
    410415        <%
     416      }     
     417     
     418      // Tables with users/groups/projects that this item is shared to
     419      MultiPermissions mp = new MultiPermissions(Collections.singleton(extract));
     420      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     421      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     422      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     423     
     424      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     425      {
     426        %>
     427        <h4 class="docked">Shared to</h4>
     428        <tbl:table
     429          id="itemsSharedTo"
     430          clazz="itemlist"
     431          columns="all"
     432        >
     433          <tbl:columndef
     434            id="itemType"
     435            title="Item type"
     436          />
     437          <tbl:columndef
     438            id="name"
     439            title="Name"
     440          />
     441          <tbl:columndef
     442            id="permissions"
     443            title="Permissions"
     444          />
     445          <tbl:data>
     446            <tbl:columns>
     447            </tbl:columns>
     448            <tbl:rows>
     449            <%
     450            while(projects.hasNext())
     451            {
     452              Project project = projects.next();
     453              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     454              %>     
     455              <tbl:row>
     456                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     457                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     458                <tbl:cell column="permissions">
     459                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     460                </tbl:cell>
     461              </tbl:row>
     462              <%
     463            }
     464            while(groups.hasNext())
     465            {
     466              Group group = groups.next();
     467              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     468              %>
     469              <tbl:row>             
     470                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     471                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     472                <tbl:cell column="permissions">
     473                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     474                </tbl:cell>
     475              </tbl:row>
     476              <% 
     477            }
     478            while (users.hasNext())
     479            {
     480              User user = users.next();
     481              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     482              %>
     483              <tbl:row>             
     484                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     485                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     486                <tbl:cell column="permissions">
     487                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     488                </tbl:cell>
     489              </tbl:row>
     490              <%
     491            }
     492            %>
     493            </tbl:rows>
     494          </tbl:data>
     495        </tbl:table>
     496        <%
     497      }
     498      else
     499      {
     500        %>
     501        <h4>Shared to</h4>
     502        This labeled extract is not shared
     503        (or, you don't have permission to view the ones it is shared to).
     504        <%
    411505      }
    412506      %>
  • trunk/www/biomaterials/labels/view_label.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Include"
    3233  import="net.sf.basedb.core.Item"
    3334  import="net.sf.basedb.core.ItemContext"
    3435  import="net.sf.basedb.core.ItemQuery"
     36  import="net.sf.basedb.core.ItemResultIterator"
    3537  import="net.sf.basedb.core.ItemResultList"
    3638  import="net.sf.basedb.core.Permission"
    3739  import="net.sf.basedb.core.Label"
    3840  import="net.sf.basedb.core.LabeledExtract"
     41  import="net.sf.basedb.core.MultiPermissions"
    3942  import="net.sf.basedb.core.User"
    4043  import="net.sf.basedb.core.PermissionDeniedException"
     
    4245  import="net.sf.basedb.core.plugin.GuiContext"
    4346  import="net.sf.basedb.core.plugin.Plugin"
     47  import="net.sf.basedb.core.Project"
    4448  import="net.sf.basedb.core.query.Orders"
    4549  import="net.sf.basedb.core.query.Hql"
     
    4852  import="net.sf.basedb.clients.web.util.HTML"
    4953  import="net.sf.basedb.util.Values"
     54  import="java.util.Collections"
    5055  import="java.util.Map"
     56  import="java.util.Set"
    5157%>
    5258<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8086  %>
    8187  <base:page title="<%=title%>">
    82   <base:head scripts="tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
     88  <base:head scripts="table.js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
    8389    <script language="JavaScript">
    8490    function editItem()
     
    209215            visible="<%=label.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    210216          <base:icon image="shared.gif"
    211             visible="<%=label.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     217            visible="<%=label.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    212218        </div>
    213219        <%
     
    228234      </tr>
    229235      </table>
     236      <%     
     237     
     238      // Tables with users/groups/projects that this item is shared to
     239      MultiPermissions mp = new MultiPermissions(Collections.singleton(label));
     240      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     241      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     242      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     243     
     244      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     245      {
     246        %>
     247        <h4 class="docked">Shared to</h4>
     248        <tbl:table
     249          id="itemsSharedTo"
     250          clazz="itemlist"
     251          columns="all"
     252        >
     253          <tbl:columndef
     254            id="itemType"
     255            title="Item type"
     256          />
     257          <tbl:columndef
     258            id="name"
     259            title="Name"
     260          />
     261          <tbl:columndef
     262            id="permissions"
     263            title="Permissions"
     264          />
     265          <tbl:data>
     266            <tbl:columns>
     267            </tbl:columns>
     268            <tbl:rows>
     269            <%
     270            while(projects.hasNext())
     271            {
     272              Project project = projects.next();
     273              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     274              %>     
     275              <tbl:row>
     276                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     277                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     278                <tbl:cell column="permissions">
     279                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     280                </tbl:cell>
     281              </tbl:row>
     282              <%
     283            }
     284            while(groups.hasNext())
     285            {
     286              Group group = groups.next();
     287              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     288              %>
     289              <tbl:row>             
     290                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     291                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     292                <tbl:cell column="permissions">
     293                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     294                </tbl:cell>
     295              </tbl:row>
     296              <% 
     297            }
     298            while (users.hasNext())
     299            {
     300              User user = users.next();
     301              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     302              %>
     303              <tbl:row>             
     304                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     305                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     306                <tbl:cell column="permissions">
     307                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     308                </tbl:cell>
     309              </tbl:row>
     310              <%
     311            }
     312            %>
     313            </tbl:rows>
     314          </tbl:data>
     315        </tbl:table>
     316        <%
     317      }
     318      else
     319      {
     320        %>
     321        <h4>Shared to</h4>
     322        This label is not shared
     323        (or, you don't have permission to view the ones it is shared to).
     324        <%
     325      }     
     326      %>
    230327
    231328    </div>
  • trunk/www/biomaterials/samples/view_sample.jsp

    r2992 r3547  
    3838  import="net.sf.basedb.core.Protocol"
    3939  import="net.sf.basedb.core.User"
     40  import="net.sf.basedb.core.Group"
    4041  import="net.sf.basedb.core.ItemQuery"
     42  import="net.sf.basedb.core.ItemResultIterator"
    4143  import="net.sf.basedb.core.ItemResultList"
    4244  import="net.sf.basedb.core.Include"
     45  import="net.sf.basedb.core.MultiPermissions"
    4346  import="net.sf.basedb.core.query.Orders"
    4447  import="net.sf.basedb.core.query.Hql"
     
    4750  import="net.sf.basedb.core.plugin.GuiContext"
    4851  import="net.sf.basedb.core.plugin.Plugin"
     52  import="net.sf.basedb.core.Project"
    4953  import="net.sf.basedb.clients.web.Base"
    5054  import="net.sf.basedb.clients.web.PermissionUtil"
     
    5357  import="net.sf.basedb.util.formatter.Formatter"
    5458  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
     59  import="java.util.Collections"
    5560  import="java.util.Date"
    5661  import="java.util.Map"
     
    237242            visible="<%=sample.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    238243          <base:icon image="shared.gif"
    239             visible="<%=sample.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     244            visible="<%=sample.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    240245        </div>
    241246        <%
    242247      }
    243248      %>
    244       <table class="form" cellspacing=0>
     249      <table class="form" cellspacing="0">
    245250      <tr>
    246251        <td class="prompt">Name</td>
     
    391396        </tbl:table>
    392397        <%
     398      }     
     399     
     400      // Tables with users/groups/projects that this item is shared to
     401      MultiPermissions mp = new MultiPermissions(Collections.singleton(sample));
     402      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     403      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     404      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     405     
     406      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     407      {
     408        %>
     409        <h4 class="docked">Shared to</h4>
     410        <tbl:table
     411          id="itemsSharedTo"
     412          clazz="itemlist"
     413          columns="all"
     414        >
     415          <tbl:columndef
     416            id="itemType"
     417            title="Item type"
     418          />
     419          <tbl:columndef
     420            id="name"
     421            title="Name"
     422          />
     423          <tbl:columndef
     424            id="permissions"
     425            title="Permissions"
     426          />
     427          <tbl:data>
     428            <tbl:columns>
     429            </tbl:columns>
     430            <tbl:rows>
     431            <%
     432            while(projects.hasNext())
     433            {
     434              Project project = projects.next();
     435              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     436              %>     
     437              <tbl:row>
     438                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     439                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     440                <tbl:cell column="permissions">
     441                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     442                </tbl:cell>
     443              </tbl:row>
     444              <%
     445            }
     446            while(groups.hasNext())
     447            {
     448              Group group = groups.next();
     449              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     450              %>
     451              <tbl:row>             
     452                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     453                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     454                <tbl:cell column="permissions">
     455                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     456                </tbl:cell>
     457              </tbl:row>
     458              <% 
     459            }
     460            while (users.hasNext())
     461            {
     462              User user = users.next();
     463              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     464              %>
     465              <tbl:row>             
     466                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     467                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     468                <tbl:cell column="permissions">
     469                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     470                </tbl:cell>
     471              </tbl:row>
     472              <%
     473            }
     474            %>
     475            </tbl:rows>
     476          </tbl:data>
     477        </tbl:table>
     478        <%
     479      }
     480      else
     481      {
     482        %>
     483        <h4>Shared to</h4>
     484        This sample is not shared
     485        (or, you don't have permission to view the ones it is shared to).
     486        <%
    393487      }
    394488      %>     
  • trunk/www/filemanager/files/view_file.jsp

    r3466 r3547  
    2929  import="net.sf.basedb.core.SessionControl"
    3030  import="net.sf.basedb.core.DbControl"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.File"
    3537  import="net.sf.basedb.core.FileType"
    3638  import="net.sf.basedb.core.Location"
     39  import="net.sf.basedb.core.MultiPermissions"
    3740  import="net.sf.basedb.core.User"
    3841  import="net.sf.basedb.core.PermissionDeniedException"
     
    4043  import="net.sf.basedb.core.plugin.GuiContext"
    4144  import="net.sf.basedb.core.plugin.Plugin"
     45  import="net.sf.basedb.core.Project"
    4246  import="net.sf.basedb.clients.web.Base"
    4347  import="net.sf.basedb.clients.web.PermissionUtil"
     
    4650  import="net.sf.basedb.util.Values"
    4751  import="net.sf.basedb.util.formatter.Formatter"
     52  import="java.util.Collections"
    4853  import="java.util.Date"
    4954  import="java.util.Map"
     
    8186  %>
    8287  <base:page type="popup" title="<%=title%>">
    83   <base:head styles="toolbar.css">
     88  <base:head scripts="table.js" styles="table.css,toolbar.css">
    8489    <script language="JavaScript">
    8590    function editItem()
     
    203208            visible="<%=file.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    204209          <base:icon image="shared.gif"
    205             visible="<%=file.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     210            visible="<%=file.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    206211        </div>
    207212        <%
     
    327332      </tr>
    328333      </table>
     334      <%     
    329335     
     336      // Tables with users/groups/projects that this item is shared to
     337      MultiPermissions mp = new MultiPermissions(Collections.singleton(file));
     338      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     339      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     340      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     341     
     342      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     343      {
     344        %>
     345        <h4 class="docked">Shared to</h4>
     346        <tbl:table
     347          id="itemsSharedTo"
     348          clazz="itemlist"
     349          columns="all"
     350        >
     351          <tbl:columndef
     352            id="itemType"
     353            title="Item type"
     354          />
     355          <tbl:columndef
     356            id="name"
     357            title="Name"
     358          />
     359          <tbl:columndef
     360            id="permissions"
     361            title="Permissions"
     362          />
     363          <tbl:data>
     364            <tbl:columns>
     365            </tbl:columns>
     366            <tbl:rows>
     367            <%
     368            while(projects.hasNext())
     369            {
     370              Project project = projects.next();
     371              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     372              %>     
     373              <tbl:row>
     374                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     375                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     376                <tbl:cell column="permissions">
     377                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     378                </tbl:cell>
     379              </tbl:row>
     380              <%
     381            }
     382            while(groups.hasNext())
     383            {
     384              Group group = groups.next();
     385              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     386              %>
     387              <tbl:row>             
     388                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     389                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     390                <tbl:cell column="permissions">
     391                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     392                </tbl:cell>
     393              </tbl:row>
     394              <% 
     395            }
     396            while (users.hasNext())
     397            {
     398              User user = users.next();
     399              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     400              %>
     401              <tbl:row>             
     402                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     403                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     404                <tbl:cell column="permissions">
     405                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     406                </tbl:cell>
     407              </tbl:row>
     408              <%
     409            }
     410            %>
     411            </tbl:rows>
     412          </tbl:data>
     413        </tbl:table>
     414        <%
     415      }
     416      else
     417      {
     418        %>
     419        <h4>Shared to</h4>
     420        This file is not shared
     421        (or, you don't have permission to view the ones it is shared to).
     422        <%
     423      }
     424      %>
    330425
    331426
  • trunk/www/lims/arraybatches/view_batch.jsp

    r2978 r3547  
    4040  import="net.sf.basedb.core.Hardware"
    4141  import="net.sf.basedb.core.User"
     42  import="net.sf.basedb.core.Group"
    4243  import="net.sf.basedb.core.ItemQuery"
    4344  import="net.sf.basedb.core.Include"
     45  import="net.sf.basedb.core.ItemResultIterator"
    4446  import="net.sf.basedb.core.ItemResultList"
     47  import="net.sf.basedb.core.MultiPermissions"
    4548  import="net.sf.basedb.core.PermissionDeniedException"
    4649  import="net.sf.basedb.core.PluginDefinition"
    4750  import="net.sf.basedb.core.plugin.GuiContext"
    4851  import="net.sf.basedb.core.plugin.Plugin"
     52  import="net.sf.basedb.core.Project"
    4953  import="net.sf.basedb.core.query.Orders"
    5054  import="net.sf.basedb.core.query.Hql"
     
    5357  import="net.sf.basedb.clients.web.util.HTML"
    5458  import="net.sf.basedb.util.Values"
     59  import="java.util.Collections"
    5560  import="java.util.Date"
    5661  import="java.util.Map"
     
    235240      }
    236241      %>
    237       <table class="form" cellspacing=0>
     242      <table class="form" cellspacing="0">
    238243      <tr>
    239244        <td class="prompt">Name</td>
     
    316321        </tbl:table>
    317322        <%
     323      }     
     324     
     325      // Tables with users/groups/projects that this item is shared to
     326      MultiPermissions mp = new MultiPermissions(Collections.singleton(batch));
     327      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     328      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     329      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     330     
     331      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     332      {
     333        %>
     334        <h4 class="docked">Shared to</h4>
     335        <tbl:table
     336          id="itemsSharedTo"
     337          clazz="itemlist"
     338          columns="all"
     339        >
     340          <tbl:columndef
     341            id="itemType"
     342            title="Item type"
     343          />
     344          <tbl:columndef
     345            id="name"
     346            title="Name"
     347          />
     348          <tbl:columndef
     349            id="permissions"
     350            title="Permissions"
     351          />
     352          <tbl:data>
     353            <tbl:columns>
     354            </tbl:columns>
     355            <tbl:rows>
     356            <%
     357            while(projects.hasNext())
     358            {
     359              Project project = projects.next();
     360              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     361              %>     
     362              <tbl:row>
     363                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     364                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     365                <tbl:cell column="permissions">
     366                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     367                </tbl:cell>
     368              </tbl:row>
     369              <%
     370            }
     371            while(groups.hasNext())
     372            {
     373              Group group = groups.next();
     374              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     375              %>
     376              <tbl:row>             
     377                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     378                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     379                <tbl:cell column="permissions">
     380                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     381                </tbl:cell>
     382              </tbl:row>
     383              <% 
     384            }
     385            while (users.hasNext())
     386            {
     387              User user = users.next();
     388              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     389              %>
     390              <tbl:row>             
     391                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     392                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     393                <tbl:cell column="permissions">
     394                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     395                </tbl:cell>
     396              </tbl:row>
     397              <%
     398            }
     399            %>
     400            </tbl:rows>
     401          </tbl:data>
     402        </tbl:table>
     403        <%
    318404      }
     405      else
     406      {
     407        %>
     408        <h4>Shared to</h4>
     409        This array batch is not shared
     410        (or, you don't have permission to view the ones it is shared to).
     411        <%
     412      }     
    319413      %>     
    320414    </div>
  • trunk/www/lims/arraydesigns/view_design.jsp

    r3482 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.AnnotationType"
     
    4446  import="net.sf.basedb.core.Include"
    4547  import="net.sf.basedb.core.ItemResultList"
     48  import="net.sf.basedb.core.MultiPermissions"
    4649  import="net.sf.basedb.core.PermissionDeniedException"
    4750  import="net.sf.basedb.core.PluginDefinition"
    4851  import="net.sf.basedb.core.plugin.GuiContext"
    4952  import="net.sf.basedb.core.plugin.Plugin"
     53  import="net.sf.basedb.core.Project"
    5054  import="net.sf.basedb.core.query.Orders"
    5155  import="net.sf.basedb.core.query.Hql"
     
    5458  import="net.sf.basedb.clients.web.util.HTML"
    5559  import="net.sf.basedb.util.Values"
     60  import="java.util.Collections"
    5661  import="java.util.Date"
    5762  import="java.util.Map"
     
    250255            visible="<%=design.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    251256          <base:icon image="shared.gif"
    252             visible="<%=design.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     257            visible="<%=design.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    253258        </div>
    254259        <%
    255260      }
    256261      %>
    257       <table class="form" cellspacing=0>
     262      <table class="form" cellspacing="0">
    258263      <tr>
    259264        <td class="prompt">Name</td>
     
    430435        <%
    431436      }
     437       
     438      // Tables with users/groups/projects that this item is shared to
     439      MultiPermissions mp = new MultiPermissions(Collections.singleton(design));
     440      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     441      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     442      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     443     
     444      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     445      {
     446        %>
     447        <h4 class="docked">Shared to</h4>
     448        <tbl:table
     449          id="itemsSharedTo"
     450          clazz="itemlist"
     451          columns="all"
     452        >
     453          <tbl:columndef
     454            id="itemType"
     455            title="Item type"
     456          />
     457          <tbl:columndef
     458            id="name"
     459            title="Name"
     460          />
     461          <tbl:columndef
     462            id="permissions"
     463            title="Permissions"
     464          />
     465          <tbl:data>
     466            <tbl:columns>
     467            </tbl:columns>
     468            <tbl:rows>
     469            <%
     470            while(projects.hasNext())
     471            {
     472              Project project = projects.next();
     473              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     474              %>     
     475              <tbl:row>
     476                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     477                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     478                <tbl:cell column="permissions">
     479                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     480                </tbl:cell>
     481              </tbl:row>
     482              <%
     483            }
     484            while(groups.hasNext())
     485            {
     486              Group group = groups.next();
     487              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     488              %>
     489              <tbl:row>             
     490                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     491                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     492                <tbl:cell column="permissions">
     493                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     494                </tbl:cell>
     495              </tbl:row>
     496              <% 
     497            }
     498            while (users.hasNext())
     499            {
     500              User user = users.next();
     501              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     502              %>
     503              <tbl:row>             
     504                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     505                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     506                <tbl:cell column="permissions">
     507                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     508                </tbl:cell>
     509              </tbl:row>
     510              <%
     511            }
     512            %>
     513            </tbl:rows>
     514          </tbl:data>
     515        </tbl:table>
     516        <%
     517      }
     518      else
     519      {
     520        %>
     521        <h4>Shared to</h4>
     522        This array design is not shared
     523        (or, you don't have permission to view the ones it is shared to).
     524        <%
     525      }
    432526      %>     
    433527     
  • trunk/www/lims/arrayslides/view_slide.jsp

    r2978 r3547  
    3939  import="net.sf.basedb.core.ArrayDesign"
    4040  import="net.sf.basedb.core.User"
     41  import="net.sf.basedb.core.Group"
    4142  import="net.sf.basedb.core.ItemQuery"
    4243  import="net.sf.basedb.core.Include"
     44  import="net.sf.basedb.core.ItemResultIterator"
    4345  import="net.sf.basedb.core.ItemResultList"
     46  import="net.sf.basedb.core.MultiPermissions"
    4447  import="net.sf.basedb.core.PermissionDeniedException"
    4548  import="net.sf.basedb.core.PluginDefinition"
    4649  import="net.sf.basedb.core.plugin.GuiContext"
    4750  import="net.sf.basedb.core.plugin.Plugin"
     51  import="net.sf.basedb.core.Project"
    4852  import="net.sf.basedb.core.query.Orders"
    4953  import="net.sf.basedb.core.query.Hql"
     
    5256  import="net.sf.basedb.clients.web.util.HTML"
    5357  import="net.sf.basedb.util.Values"
     58  import="java.util.Collections"
    5459  import="java.util.Date"
    5560  import="java.util.Map"
     
    206211            visible="<%=slide.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    207212          <base:icon image="shared.gif"
    208             visible="<%=slide.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     213            visible="<%=slide.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    209214        </div>
    210215        <%
    211216      }
    212217      %>
    213       <table class="form" cellspacing=0>
     218      <table class="form" cellspacing="0">
    214219      <tr>
    215220        <td class="prompt">Name</td>
     
    247252      </tr>
    248253      </table>
     254      <%     
     255     
     256      // Tables with users/groups/projects that this item is shared to
     257      MultiPermissions mp = new MultiPermissions(Collections.singleton(slide));
     258      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     259      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     260      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     261     
     262      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     263      {
     264        %>
     265        <h4 class="docked">Shared to</h4>
     266        <tbl:table
     267          id="itemsSharedTo"
     268          clazz="itemlist"
     269          columns="all"
     270        >
     271          <tbl:columndef
     272            id="itemType"
     273            title="Item type"
     274          />
     275          <tbl:columndef
     276            id="name"
     277            title="Name"
     278          />
     279          <tbl:columndef
     280            id="permissions"
     281            title="Permissions"
     282          />
     283          <tbl:data>
     284            <tbl:columns>
     285            </tbl:columns>
     286            <tbl:rows>
     287            <%
     288            while(projects.hasNext())
     289            {
     290              Project project = projects.next();
     291              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     292              %>     
     293              <tbl:row>
     294                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     295                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     296                <tbl:cell column="permissions">
     297                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     298                </tbl:cell>
     299              </tbl:row>
     300              <%
     301            }
     302            while(groups.hasNext())
     303            {
     304              Group group = groups.next();
     305              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     306              %>
     307              <tbl:row>             
     308                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     309                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     310                <tbl:cell column="permissions">
     311                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     312                </tbl:cell>
     313              </tbl:row>
     314              <% 
     315            }
     316            while (users.hasNext())
     317            {
     318              User user = users.next();
     319              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     320              %>
     321              <tbl:row>             
     322                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     323                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     324                <tbl:cell column="permissions">
     325                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     326                </tbl:cell>
     327              </tbl:row>
     328              <%
     329            }
     330            %>
     331            </tbl:rows>
     332          </tbl:data>
     333        </tbl:table>
     334        <%
     335      }
     336      else
     337      {
     338        %>
     339        <h4>Shared to</h4>
     340        This array slide is not shared
     341        (or, you don't have permission to view the ones it is shared to).
     342        <%
     343      }
     344      %>
    249345    </div>
    250346      </t:tab>
  • trunk/www/lims/platemappings/view_mapping.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     
    3738  import="net.sf.basedb.core.ItemQuery"
    3839  import="net.sf.basedb.core.Include"
     40  import="net.sf.basedb.core.ItemResultIterator"
    3941  import="net.sf.basedb.core.ItemResultList"
     42  import="net.sf.basedb.core.MultiPermissions"
    4043  import="net.sf.basedb.core.PermissionDeniedException"
    4144  import="net.sf.basedb.core.PluginDefinition"
     
    4346  import="net.sf.basedb.core.plugin.GuiContext"
    4447  import="net.sf.basedb.core.plugin.Plugin"
     48  import="net.sf.basedb.core.Project"
    4549  import="net.sf.basedb.core.query.Orders"
    4650  import="net.sf.basedb.core.query.Hql"
     
    4953  import="net.sf.basedb.clients.web.util.HTML"
    5054  import="net.sf.basedb.util.Values"
     55  import="java.util.Collections"
    5156  import="java.util.Date"
    5257  import="java.util.Map"
     
    209214            visible="<%=mapping.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    210215          <base:icon image="shared.gif"
    211             visible="<%=mapping.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     216            visible="<%=mapping.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    212217        </div>
    213218        <%
     
    250255      </tr>
    251256      </table>
     257      <%     
     258     
     259      // Tables with users/groups/projects that this item is shared to
     260      MultiPermissions mp = new MultiPermissions(Collections.singleton(mapping));
     261      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     262      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     263      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     264     
     265      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     266      {
     267        %>
     268        <h4 class="docked">Shared to</h4>
     269        <tbl:table
     270          id="itemsSharedTo"
     271          clazz="itemlist"
     272          columns="all"
     273        >
     274          <tbl:columndef
     275            id="itemType"
     276            title="Item type"
     277          />
     278          <tbl:columndef
     279            id="name"
     280            title="Name"
     281          />
     282          <tbl:columndef
     283            id="permissions"
     284            title="Permissions"
     285          />
     286          <tbl:data>
     287            <tbl:columns>
     288            </tbl:columns>
     289            <tbl:rows>
     290            <%
     291            while(projects.hasNext())
     292            {
     293              Project project = projects.next();
     294              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     295              %>     
     296              <tbl:row>
     297                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     298                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     299                <tbl:cell column="permissions">
     300                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     301                </tbl:cell>
     302              </tbl:row>
     303              <%
     304            }
     305            while(groups.hasNext())
     306            {
     307              Group group = groups.next();
     308              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     309              %>
     310              <tbl:row>             
     311                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     312                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     313                <tbl:cell column="permissions">
     314                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     315                </tbl:cell>
     316              </tbl:row>
     317              <% 
     318            }
     319            while (users.hasNext())
     320            {
     321              User user = users.next();
     322              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     323              %>
     324              <tbl:row>             
     325                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     326                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     327                <tbl:cell column="permissions">
     328                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     329                </tbl:cell>
     330              </tbl:row>
     331              <%
     332            }
     333            %>
     334            </tbl:rows>
     335          </tbl:data>
     336        </tbl:table>
     337        <%
     338      }
     339      else
     340      {
     341        %>
     342        <h4>Shared to</h4>
     343        This plate mapping is not shared
     344        (or, you don't have permission to view the ones it is shared to).
     345        <%
     346      }
     347      %>
    252348    </div>
    253349      </t:tab>
  • trunk/www/lims/plates/view_plate.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     
    4142  import="net.sf.basedb.core.ItemQuery"
    4243  import="net.sf.basedb.core.Include"
     44  import="net.sf.basedb.core.ItemResultIterator"
    4345  import="net.sf.basedb.core.ItemResultList"
     46  import="net.sf.basedb.core.MultiPermissions"
    4447  import="net.sf.basedb.core.PermissionDeniedException"
    4548  import="net.sf.basedb.core.PluginDefinition"
    4649  import="net.sf.basedb.core.plugin.GuiContext"
    4750  import="net.sf.basedb.core.plugin.Plugin"
     51  import="net.sf.basedb.core.Project"
    4852  import="net.sf.basedb.core.query.Orders"
    4953  import="net.sf.basedb.core.query.Hql"
     
    5256  import="net.sf.basedb.clients.web.util.HTML"
    5357  import="net.sf.basedb.util.Values"
     58  import="java.util.Collections"
    5459  import="java.util.Date"
    5560  import="java.util.Map"
     
    236241            visible="<%=plate.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    237242          <base:icon image="shared.gif"
    238             visible="<%=plate.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     243            visible="<%=plate.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    239244        </div>
    240245        <%
    241246      }
    242247      %>
    243       <table class="form" cellspacing=0>
     248      <table class="form" cellspacing="0">
    244249      <tr>
    245250        <td class="prompt">Name</td>
     
    398403        </tbl:table>
    399404        <%
     405      }     
     406     
     407      // Tables with users/groups/projects that this item is shared to
     408      MultiPermissions mp = new MultiPermissions(Collections.singleton(plate));
     409      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     410      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     411      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     412     
     413      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     414      {
     415        %>
     416        <h4 class="docked">Shared to</h4>
     417        <tbl:table
     418          id="itemsSharedTo"
     419          clazz="itemlist"
     420          columns="all"
     421        >
     422          <tbl:columndef
     423            id="itemType"
     424            title="Item type"
     425          />
     426          <tbl:columndef
     427            id="name"
     428            title="Name"
     429          />
     430          <tbl:columndef
     431            id="permissions"
     432            title="Permissions"
     433          />
     434          <tbl:data>
     435            <tbl:columns>
     436            </tbl:columns>
     437            <tbl:rows>
     438            <%
     439            while(projects.hasNext())
     440            {
     441              Project project = projects.next();
     442              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     443              %>     
     444              <tbl:row>
     445                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     446                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     447                <tbl:cell column="permissions">
     448                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     449                </tbl:cell>
     450              </tbl:row>
     451              <%
     452            }
     453            while(groups.hasNext())
     454            {
     455              Group group = groups.next();
     456              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     457              %>
     458              <tbl:row>             
     459                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     460                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     461                <tbl:cell column="permissions">
     462                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     463                </tbl:cell>
     464              </tbl:row>
     465              <% 
     466            }
     467            while (users.hasNext())
     468            {
     469              User user = users.next();
     470              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     471              %>
     472              <tbl:row>             
     473                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     474                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     475                <tbl:cell column="permissions">
     476                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     477                </tbl:cell>
     478              </tbl:row>
     479              <%
     480            }
     481            %>
     482            </tbl:rows>
     483          </tbl:data>
     484        </tbl:table>
     485        <%
     486      }
     487      else
     488      {
     489        %>
     490        <h4>Shared to</h4>
     491        This plate is not shared
     492        (or, you don't have permission to view the ones it is shared to).
     493        <%
    400494      }
    401495      %>
  • trunk/www/lims/platetypes/view_platetype.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     
    3839  import="net.sf.basedb.core.ItemQuery"
    3940  import="net.sf.basedb.core.Include"
     41  import="net.sf.basedb.core.ItemResultIterator"
    4042  import="net.sf.basedb.core.ItemResultList"
     43  import="net.sf.basedb.core.MultiPermissions"
    4144  import="net.sf.basedb.core.PermissionDeniedException"
    4245  import="net.sf.basedb.core.PluginDefinition"
    4346  import="net.sf.basedb.core.plugin.GuiContext"
    4447  import="net.sf.basedb.core.plugin.Plugin"
     48  import="net.sf.basedb.core.Project"
    4549  import="net.sf.basedb.core.query.Orders"
    4650  import="net.sf.basedb.core.query.Hql"
     
    4953  import="net.sf.basedb.clients.web.util.HTML"
    5054  import="net.sf.basedb.util.Values"
     55  import="java.util.Collections"
    5156  import="java.util.Date"
    5257  import="java.util.Map"
     
    219224              visible="<%=plateType.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    220225            <base:icon image="shared.gif"
    221               visible="<%=plateType.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     226              visible="<%=plateType.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    222227          </div>
    223228          <%
    224229        }
    225230        %>
    226         <table class="form" cellspacing=0>
     231        <table class="form" cellspacing="0">
    227232        <tr>
    228233          <td class="prompt">Name</td>
     
    302307        </tbl:table>
    303308        <%
     309      }     
     310     
     311      // Tables with users/groups/projects that this item is shared to
     312      MultiPermissions mp = new MultiPermissions(Collections.singleton(plateType));
     313      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     314      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     315      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     316     
     317      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     318      {
     319        %>
     320        <h4 class="docked">Shared to</h4>
     321        <tbl:table
     322          id="itemsSharedTo"
     323          clazz="itemlist"
     324          columns="all"
     325        >
     326          <tbl:columndef
     327            id="itemType"
     328            title="Item type"
     329          />
     330          <tbl:columndef
     331            id="name"
     332            title="Name"
     333          />
     334          <tbl:columndef
     335            id="permissions"
     336            title="Permissions"
     337          />
     338          <tbl:data>
     339            <tbl:columns>
     340            </tbl:columns>
     341            <tbl:rows>
     342            <%
     343            while(projects.hasNext())
     344            {
     345              Project project = projects.next();
     346              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     347              %>     
     348              <tbl:row>
     349                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     350                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     351                <tbl:cell column="permissions">
     352                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     353                </tbl:cell>
     354              </tbl:row>
     355              <%
     356            }
     357            while(groups.hasNext())
     358            {
     359              Group group = groups.next();
     360              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     361              %>
     362              <tbl:row>             
     363                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     364                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     365                <tbl:cell column="permissions">
     366                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     367                </tbl:cell>
     368              </tbl:row>
     369              <% 
     370            }
     371            while (users.hasNext())
     372            {
     373              User user = users.next();
     374              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     375              %>
     376              <tbl:row>             
     377                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     378                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     379                <tbl:cell column="permissions">
     380                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     381                </tbl:cell>
     382              </tbl:row>
     383              <%
     384            }
     385            %>
     386            </tbl:rows>
     387          </tbl:data>
     388        </tbl:table>
     389        <%
     390      }
     391      else
     392      {
     393        %>
     394        <h4>Shared to</h4>
     395        This plate type is not shared
     396        (or, you don't have permission to view the ones it is shared to).
     397        <%
    304398      }
    305399      %>
  • trunk/www/views/experiments/view_experiment.jsp

    r3498 r3547  
    3939  import="net.sf.basedb.core.Type"
    4040  import="net.sf.basedb.core.User"
     41  import="net.sf.basedb.core.Group"
    4142  import="net.sf.basedb.core.ItemQuery"
    4243  import="net.sf.basedb.core.ItemResultList"
     44  import="net.sf.basedb.core.ItemResultIterator"
    4345  import="net.sf.basedb.core.Include"
     46  import="net.sf.basedb.core.MultiPermissions"
    4447  import="net.sf.basedb.core.PermissionDeniedException"
    4548  import="net.sf.basedb.core.PluginDefinition"
    4649  import="net.sf.basedb.core.plugin.GuiContext"
    4750  import="net.sf.basedb.core.plugin.Plugin"
     51  import="net.sf.basedb.core.Project"
    4852  import="net.sf.basedb.core.query.Orders"
    4953  import="net.sf.basedb.core.query.Hql"
     
    5458  import="net.sf.basedb.util.formatter.Formatter"
    5559  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
     60  import="java.util.Collections"
    5661  import="java.util.Date"
    5762  import="java.util.Map"
     
    266271            visible="<%=experiment.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    267272          <base:icon image="shared.gif"
    268             visible="<%=experiment.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     273            visible="<%=experiment.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    269274        </div>
    270275        <%
    271276      }
    272277      %>
    273       <table class="form" cellspacing=0>
     278      <table class="form" cellspacing="0">
    274279      <tr>
    275280        <td class="prompt">Name</td>
     
    299304     
    300305      <h4>Publication</h4>
    301       <table class="form" cellspacing=0>
     306      <table class="form" cellspacing="0">
    302307      <tr>
    303308        <td class="prompt">PubMed ID</td>
     
    531536        </tbl:table>
    532537        <%
     538      }     
     539     
     540      // Tables with users/groups/projects that this item is shared to
     541      MultiPermissions mp = new MultiPermissions(Collections.singleton(experiment));
     542      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     543      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     544      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     545     
     546      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     547      {
     548        %>
     549        <h4 class="docked">Shared to</h4>
     550        <tbl:table
     551          id="itemsSharedTo"
     552          clazz="itemlist"
     553          columns="all"
     554        >
     555          <tbl:columndef
     556            id="itemType"
     557            title="Item type"
     558          />
     559          <tbl:columndef
     560            id="name"
     561            title="Name"
     562          />
     563          <tbl:columndef
     564            id="permissions"
     565            title="Permissions"
     566          />
     567          <tbl:data>
     568            <tbl:columns>
     569            </tbl:columns>
     570            <tbl:rows>
     571            <%
     572            while(projects.hasNext())
     573            {
     574              Project project = projects.next();
     575              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     576              %>     
     577              <tbl:row>
     578                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     579                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     580                <tbl:cell column="permissions">
     581                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     582                </tbl:cell>
     583              </tbl:row>
     584              <%
     585            }
     586            while(groups.hasNext())
     587            {
     588              Group group = groups.next();
     589              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     590              %>
     591              <tbl:row>             
     592                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     593                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     594                <tbl:cell column="permissions">
     595                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     596                </tbl:cell>
     597              </tbl:row>
     598              <% 
     599            }
     600            while (users.hasNext())
     601            {
     602              User user = users.next();
     603              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     604              %>
     605              <tbl:row>             
     606                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     607                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     608                <tbl:cell column="permissions">
     609                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     610                </tbl:cell>
     611              </tbl:row>
     612              <%
     613            }
     614            %>
     615            </tbl:rows>
     616          </tbl:data>
     617        </tbl:table>
     618        <%
     619      }
     620      else
     621      {
     622        %>
     623        <h4>Shared to</h4>
     624        This experiment is not shared
     625        (or, you don't have permission to view the ones it is shared to).
     626        <%
    533627      }
    534628      %>
  • trunk/www/views/formulas/view_formula.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
     35  import="net.sf.basedb.core.MultiPermissions"
    3336  import="net.sf.basedb.core.Permission"
    3437  import="net.sf.basedb.core.Formula"
     
    4043  import="net.sf.basedb.core.plugin.GuiContext"
    4144  import="net.sf.basedb.core.plugin.Plugin"
     45  import="net.sf.basedb.core.Project"
    4246  import="net.sf.basedb.util.Values"
    4347  import="net.sf.basedb.clients.web.Base"
    4448  import="net.sf.basedb.clients.web.PermissionUtil"
    4549  import="net.sf.basedb.clients.web.util.HTML"
     50  import="java.util.Collections"
    4651  import="java.util.List"
    4752  import="java.util.Map"
     53  import="java.util.Set"
    4854%>
    4955<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    8086
    8187  <base:page title="<%=title%>">
    82   <base:head scripts="tabcontrol.js" styles="toolbar.css,headertabcontrol.css,path.css">
     88  <base:head scripts="table.js,tabcontrol.js" styles="table.css,toolbar.css,headertabcontrol.css,path.css">
    8389    <script language="JavaScript">
    8490    function editItem()
     
    198204            visible="<%=formula.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    199205          <base:icon image="shared.gif"
    200             visible="<%=formula.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     206            visible="<%=formula.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    201207        </div>
    202208        <%
    203209      }
    204210      %>
    205       <table class="form" cellspacing=0>
     211      <table class="form" cellspacing="0">
    206212      <tr>
    207213        <td class="prompt">Name</td>
     
    264270      </tr>
    265271      </table>
     272      <%     
     273     
     274      // Tables with users/groups/projects that this item is shared to
     275      MultiPermissions mp = new MultiPermissions(Collections.singleton(formula));
     276      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     277      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     278      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     279     
     280      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     281      {
     282        %>
     283        <h4 class="docked">Shared to</h4>
     284        <tbl:table
     285          id="itemsSharedTo"
     286          clazz="itemlist"
     287          columns="all"
     288        >
     289          <tbl:columndef
     290            id="itemType"
     291            title="Item type"
     292          />
     293          <tbl:columndef
     294            id="name"
     295            title="Name"
     296          />
     297          <tbl:columndef
     298            id="permissions"
     299            title="Permissions"
     300          />
     301          <tbl:data>
     302            <tbl:columns>
     303            </tbl:columns>
     304            <tbl:rows>
     305            <%
     306            while(projects.hasNext())
     307            {
     308              Project project = projects.next();
     309              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     310              %>     
     311              <tbl:row>
     312                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     313                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     314                <tbl:cell column="permissions">
     315                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     316                </tbl:cell>
     317              </tbl:row>
     318              <%
     319            }
     320            while(groups.hasNext())
     321            {
     322              Group group = groups.next();
     323              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     324              %>
     325              <tbl:row>             
     326                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     327                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     328                <tbl:cell column="permissions">
     329                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     330                </tbl:cell>
     331              </tbl:row>
     332              <% 
     333            }
     334            while (users.hasNext())
     335            {
     336              User user = users.next();
     337              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     338              %>
     339              <tbl:row>             
     340                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     341                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     342                <tbl:cell column="permissions">
     343                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     344                </tbl:cell>
     345              </tbl:row>
     346              <%
     347            }
     348            %>
     349            </tbl:rows>
     350          </tbl:data>
     351        </tbl:table>
     352        <%
     353      }
     354      else
     355      {
     356        %>
     357        <h4>Shared to</h4>
     358        This formula is not shared
     359        (or, you don't have permission to view the ones it is shared to).
     360        <%
     361      }     
     362      %>
    266363
    267364    </div>
  • trunk/www/views/hybridizations/view_hybridization.jsp

    r2978 r3547  
    3939  import="net.sf.basedb.core.Protocol"
    4040  import="net.sf.basedb.core.Scan"
     41  import="net.sf.basedb.core.Group"
    4142  import="net.sf.basedb.core.Hardware"
    4243  import="net.sf.basedb.core.User"
    4344  import="net.sf.basedb.core.LabeledExtract"
    4445  import="net.sf.basedb.core.Label"
     46  import="net.sf.basedb.core.MultiPermissions"
    4547  import="net.sf.basedb.core.ItemQuery"
    4648  import="net.sf.basedb.core.Include"
     49  import="net.sf.basedb.core.ItemResultIterator"
    4750  import="net.sf.basedb.core.ItemResultList"
    4851  import="net.sf.basedb.core.PermissionDeniedException"
     
    5053  import="net.sf.basedb.core.plugin.GuiContext"
    5154  import="net.sf.basedb.core.plugin.Plugin"
     55  import="net.sf.basedb.core.Project"
    5256  import="net.sf.basedb.core.query.Orders"
    5357  import="net.sf.basedb.core.query.Hql"
     
    5862  import="net.sf.basedb.util.formatter.Formatter"
    5963  import="net.sf.basedb.clients.web.formatter.FormatterFactory"
     64  import="java.util.Collections"
    6065  import="java.util.Date"
    6166  import="java.util.Map"
     
    227232            visible="<%=hyb.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    228233          <base:icon image="shared.gif"
    229             visible="<%=hyb.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     234            visible="<%=hyb.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    230235        </div>
    231236        <%
    232237      }
    233238      %>
    234       <table class="form" cellspacing=0>
     239      <table class="form" cellspacing="0">
    235240      <tr>
    236241        <td class="prompt">Name</td>
     
    384389        </tbl:table>
    385390        <%
     391      }     
     392     
     393      // Tables with users/groups/projects that this item is shared to
     394      MultiPermissions mp = new MultiPermissions(Collections.singleton(hyb));
     395      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     396      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     397      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     398     
     399      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     400      {
     401        %>
     402        <h4 class="docked">Shared to</h4>
     403        <tbl:table
     404          id="itemsSharedTo"
     405          clazz="itemlist"
     406          columns="all"
     407        >
     408          <tbl:columndef
     409            id="itemType"
     410            title="Item type"
     411          />
     412          <tbl:columndef
     413            id="name"
     414            title="Name"
     415          />
     416          <tbl:columndef
     417            id="permissions"
     418            title="Permissions"
     419          />
     420          <tbl:data>
     421            <tbl:columns>
     422            </tbl:columns>
     423            <tbl:rows>
     424            <%
     425            while(projects.hasNext())
     426            {
     427              Project project = projects.next();
     428              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     429              %>     
     430              <tbl:row>
     431                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     432                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     433                <tbl:cell column="permissions">
     434                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     435                </tbl:cell>
     436              </tbl:row>
     437              <%
     438            }
     439            while(groups.hasNext())
     440            {
     441              Group group = groups.next();
     442              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     443              %>
     444              <tbl:row>             
     445                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     446                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     447                <tbl:cell column="permissions">
     448                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     449                </tbl:cell>
     450              </tbl:row>
     451              <% 
     452            }
     453            while (users.hasNext())
     454            {
     455              User user = users.next();
     456              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     457              %>
     458              <tbl:row>             
     459                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     460                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     461                <tbl:cell column="permissions">
     462                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     463                </tbl:cell>
     464              </tbl:row>
     465              <%
     466            }
     467            %>
     468            </tbl:rows>
     469          </tbl:data>
     470        </tbl:table>
     471        <%
     472      }
     473      else
     474      {
     475        %>
     476        <h4>Shared to</h4>
     477        This hybridization is not shared
     478        (or, you don't have permission to view the ones it is shared to).
     479        <%
    386480      }
    387481      %>
  • trunk/www/views/rawbioassays/view_rawbioassay.jsp

    r2978 r3547  
    4848  import="net.sf.basedb.core.File"
    4949  import="net.sf.basedb.core.User"
     50  import="net.sf.basedb.core.Group"
    5051  import="net.sf.basedb.core.ItemQuery"
     52  import="net.sf.basedb.core.ItemResultIterator"
    5153  import="net.sf.basedb.core.ItemResultList"
    5254  import="net.sf.basedb.core.Include"
     55  import="net.sf.basedb.core.MultiPermissions"
    5356  import="net.sf.basedb.core.PermissionDeniedException"
    5457  import="net.sf.basedb.core.PluginDefinition"
    5558  import="net.sf.basedb.core.plugin.GuiContext"
    5659  import="net.sf.basedb.core.plugin.Plugin"
     60  import="net.sf.basedb.core.Project"
    5761  import="net.sf.basedb.core.query.Orders"
    5862  import="net.sf.basedb.core.query.Hql"
     
    6165  import="net.sf.basedb.clients.web.util.HTML"
    6266  import="net.sf.basedb.util.Values"
     67  import="java.util.Collections"
    6368  import="java.util.Date"
    6469  import="java.util.Map"
     
    243248            visible="<%=rawBioAssay.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    244249          <base:icon image="shared.gif"
    245             visible="<%=rawBioAssay.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     250            visible="<%=rawBioAssay.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    246251        </div>
    247252        <%
     
    253258      <td>
    254259     
    255       <table class="form" cellspacing=0>
     260      <table class="form" cellspacing="0">
    256261      <tr>
    257262        <td class="prompt">Name</td>
     
    331336        SpotImages spi = rawBioAssay.getSpotImages();
    332337        %>
    333         <table class="form" cellspacing=0>
     338        <table class="form" cellspacing="0">
    334339        <tr>
    335340          <td class="prompt">X scale</td>
     
    383388     
    384389      <h4>Raw data headers</h4>
    385       <table class="form" cellspacing=0>
     390      <table class="form" cellspacing="0">
    386391      <%
    387392      Set<String> names = rawBioAssay.getHeaderNames();
     
    456461        </tbl:table>
    457462        <%
     463      }     
     464     
     465      // Tables with users/groups/projects that this item is shared to
     466      MultiPermissions mp = new MultiPermissions(Collections.singleton(rawBioAssay));
     467      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     468      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     469      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     470     
     471      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     472      {
     473        %>
     474        <h4 class="docked">Shared to</h4>
     475        <tbl:table
     476          id="itemsSharedTo"
     477          clazz="itemlist"
     478          columns="all"
     479        >
     480          <tbl:columndef
     481            id="itemType"
     482            title="Item type"
     483          />
     484          <tbl:columndef
     485            id="name"
     486            title="Name"
     487          />
     488          <tbl:columndef
     489            id="permissions"
     490            title="Permissions"
     491          />
     492          <tbl:data>
     493            <tbl:columns>
     494            </tbl:columns>
     495            <tbl:rows>
     496            <%
     497            while(projects.hasNext())
     498            {
     499              Project project = projects.next();
     500              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     501              %>     
     502              <tbl:row>
     503                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     504                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     505                <tbl:cell column="permissions">
     506                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     507                </tbl:cell>
     508              </tbl:row>
     509              <%
     510            }
     511            while(groups.hasNext())
     512            {
     513              Group group = groups.next();
     514              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     515              %>
     516              <tbl:row>             
     517                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     518                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     519                <tbl:cell column="permissions">
     520                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     521                </tbl:cell>
     522              </tbl:row>
     523              <% 
     524            }
     525            while (users.hasNext())
     526            {
     527              User user = users.next();
     528              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     529              %>
     530              <tbl:row>             
     531                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     532                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     533                <tbl:cell column="permissions">
     534                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     535                </tbl:cell>
     536              </tbl:row>
     537              <%
     538            }
     539            %>
     540            </tbl:rows>
     541          </tbl:data>
     542        </tbl:table>
     543        <%
     544      }
     545      else
     546      {
     547        %>
     548        <h4>Shared to</h4>
     549        This raw bioassay is not shared
     550        (or, you don't have permission to view the ones it is shared to).
     551        <%
    458552      }
    459553      %>
  • trunk/www/views/reporterlists/view_reporterlist.jsp

    r2978 r3547  
    2929  import="net.sf.basedb.core.DbControl"
    3030  import="net.sf.basedb.core.SystemItems"
     31  import="net.sf.basedb.core.Group"
    3132  import="net.sf.basedb.core.Item"
    3233  import="net.sf.basedb.core.ItemContext"
     34  import="net.sf.basedb.core.ItemResultIterator"
    3335  import="net.sf.basedb.core.Permission"
    3436  import="net.sf.basedb.core.ReporterList"
    3537  import="net.sf.basedb.core.User"
    3638  import="net.sf.basedb.core.RawDataType"
     39  import="net.sf.basedb.core.MultiPermissions"
    3740  import="net.sf.basedb.core.PermissionDeniedException"
    3841  import="net.sf.basedb.core.PluginDefinition"
    3942  import="net.sf.basedb.core.plugin.GuiContext"
    4043  import="net.sf.basedb.core.plugin.Plugin"
     44  import="net.sf.basedb.core.Project"
    4145  import="net.sf.basedb.clients.web.Base"
    4246  import="net.sf.basedb.clients.web.PermissionUtil"
    4347  import="net.sf.basedb.clients.web.util.HTML"
    4448  import="net.sf.basedb.util.Values"
     49  import="java.util.Collections"
    4550  import="java.util.List"
    4651  import="java.util.Map"
     52  import="java.util.Set"
    4753%>
    4854<%@ taglib prefix="base" uri="/WEB-INF/base.tld" %>
     
    208214            visible="<%=reporterList.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    209215          <base:icon image="shared.gif"
    210             visible="<%=reporterList.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     216            visible="<%=reporterList.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    211217        </div>
    212218        <%
    213219      }
    214220      %>
    215       <table class="form" cellspacing=0>
     221      <table class="form" cellspacing="0">
    216222      <tr>
    217223        <td class="prompt">Name</td>
     
    228234      <tr>
    229235        <td class="prompt">Experiment</td>
    230         <td><base:propertyvalue item="<%=reporterList%>" property="experiment" />
     236        <td><base:propertyvalue item="<%=reporterList%>" property="experiment" /></td>
     237      </tr>
    231238      <tr>
    232239        <td class="prompt">Owner</td>
     
    238245      </tr>
    239246      </table>
     247      <%     
     248     
     249      // Tables with users/groups/projects that this item is shared to
     250      MultiPermissions mp = new MultiPermissions(Collections.singleton(reporterList));
     251      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     252      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     253      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     254     
     255      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     256      {
     257        %>
     258        <h4 class="docked">Shared to</h4>
     259        <tbl:table
     260          id="itemsSharedTo"
     261          clazz="itemlist"
     262          columns="all"
     263        >
     264          <tbl:columndef
     265            id="itemType"
     266            title="Item type"
     267          />
     268          <tbl:columndef
     269            id="name"
     270            title="Name"
     271          />
     272          <tbl:columndef
     273            id="permissions"
     274            title="Permissions"
     275          />
     276          <tbl:data>
     277            <tbl:columns>
     278            </tbl:columns>
     279            <tbl:rows>
     280            <%
     281            while(projects.hasNext())
     282            {
     283              Project project = projects.next();
     284              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     285              %>     
     286              <tbl:row>
     287                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     288                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     289                <tbl:cell column="permissions">
     290                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     291                </tbl:cell>
     292              </tbl:row>
     293              <%
     294            }
     295            while(groups.hasNext())
     296            {
     297              Group group = groups.next();
     298              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     299              %>
     300              <tbl:row>             
     301                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     302                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     303                <tbl:cell column="permissions">
     304                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     305                </tbl:cell>
     306              </tbl:row>
     307              <% 
     308            }
     309            while (users.hasNext())
     310            {
     311              User user = users.next();
     312              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     313              %>
     314              <tbl:row>             
     315                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     316                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     317                <tbl:cell column="permissions">
     318                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     319                </tbl:cell>
     320              </tbl:row>
     321              <%
     322            }
     323            %>
     324            </tbl:rows>
     325          </tbl:data>
     326        </tbl:table>
     327        <%
     328      }
     329      else
     330      {
     331        %>
     332        <h4>Shared to</h4>
     333        This reporter list is not shared
     334        (or, you don't have permission to view the ones it is shared to).
     335        <%
     336      }
     337      %>
    240338
    241339    </div>
  • trunk/www/views/scans/view_scan.jsp

    r2978 r3547  
    4040  import="net.sf.basedb.core.Hybridization"
    4141  import="net.sf.basedb.core.User"
     42  import="net.sf.basedb.core.Group"
    4243  import="net.sf.basedb.core.ItemQuery"
     44  import="net.sf.basedb.core.ItemResultIterator"
    4345  import="net.sf.basedb.core.ItemResultList"
    4446  import="net.sf.basedb.core.Include"
     47  import="net.sf.basedb.core.MultiPermissions"
    4548  import="net.sf.basedb.core.PermissionDeniedException"
    4649  import="net.sf.basedb.core.PluginDefinition"
    4750  import="net.sf.basedb.core.plugin.GuiContext"
    4851  import="net.sf.basedb.core.plugin.Plugin"
     52  import="net.sf.basedb.core.Project"
    4953  import="net.sf.basedb.core.query.Orders"
    5054  import="net.sf.basedb.core.query.Hql"
     
    5357  import="net.sf.basedb.clients.web.util.HTML"
    5458  import="net.sf.basedb.util.Values"
     59  import="java.util.Collections"
    5560  import="java.util.Date"
    5661  import="java.util.Map"
     
    235240            visible="<%=scan.isRemoved()%>"> This item has been flagged for deletion<br></base:icon>
    236241          <base:icon image="shared.gif"
    237             visible="<%=scan.isShared()%>"> This item is shared to other user, groups and/or projects</base:icon>
     242            visible="<%=scan.isShared()%>"> This item is shared to other users, groups and/or projects</base:icon>
    238243        </div>
    239244        <%
    240245      }
    241246      %>
    242       <table class="form" cellspacing=0>
     247      <table class="form" cellspacing="0">
    243248      <tr>
    244249        <td class="prompt">Name</td>
     
    336341        </tbl:table>
    337342        <%
     343      }     
     344     
     345      // Tables with users/groups/projects that this item is shared to
     346      MultiPermissions mp = new MultiPermissions(Collections.singleton(scan));
     347      ItemResultIterator<User> users = mp.getUsers().iterate(dc);
     348      ItemResultIterator<Group> groups = mp.getGroups().iterate(dc);
     349      ItemResultIterator<Project> projects = mp.getProjects().iterate(dc);
     350     
     351      if (users.hasNext() || groups.hasNext() || projects.hasNext())
     352      {
     353        %>
     354        <h4 class="docked">Shared to</h4>
     355        <tbl:table
     356          id="itemsSharedTo"
     357          clazz="itemlist"
     358          columns="all"
     359        >
     360          <tbl:columndef
     361            id="itemType"
     362            title="Item type"
     363          />
     364          <tbl:columndef
     365            id="name"
     366            title="Name"
     367          />
     368          <tbl:columndef
     369            id="permissions"
     370            title="Permissions"
     371          />
     372          <tbl:data>
     373            <tbl:columns>
     374            </tbl:columns>
     375            <tbl:rows>
     376            <%
     377            while(projects.hasNext())
     378            {
     379              Project project = projects.next();
     380              Set<Permission> permissions = mp.getPermissions(project).values().iterator().next();
     381              %>     
     382              <tbl:row>
     383                <tbl:cell column="itemType"><%=project.getType()%></tbl:cell>
     384                <tbl:cell column="name"><%=Base.getLinkedName(ID, project, false, true)%></tbl:cell>
     385                <tbl:cell column="permissions">
     386                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     387                </tbl:cell>
     388              </tbl:row>
     389              <%
     390            }
     391            while(groups.hasNext())
     392            {
     393              Group group = groups.next();
     394              Set<Permission> permissions = mp.getPermissions(group).values().iterator().next();
     395              %>
     396              <tbl:row>             
     397                <tbl:cell column="itemType"><%=group.getType()%></tbl:cell>
     398                <tbl:cell column="name"><%=Base.getLinkedName(ID, group, false, true)%></tbl:cell>
     399                <tbl:cell column="permissions">
     400                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     401                </tbl:cell>
     402              </tbl:row>
     403              <% 
     404            }
     405            while (users.hasNext())
     406            {
     407              User user = users.next();
     408              Set<Permission> permissions = mp.getPermissions(user).values().iterator().next();
     409              %>
     410              <tbl:row>             
     411                <tbl:cell column="itemType"><%=user.getType()%></tbl:cell>
     412                <tbl:cell column="name"><%=Base.getLinkedName(ID, user, false, true)%></tbl:cell>
     413                <tbl:cell column="permissions">
     414                  <%=PermissionUtil.translatePermissionsToString(permissions)%>
     415                </tbl:cell>
     416              </tbl:row>
     417              <%
     418            }
     419            %>
     420            </tbl:rows>
     421          </tbl:data>
     422        </tbl:table>
     423        <%
     424      }
     425      else
     426      {
     427        %>
     428        <h4>Shared to</h4>
     429        This scan is not shared
     430        (or, you don't have permission to view the ones it is shared to).
     431        <%
    338432      }
    339433      %>
Note: See TracChangeset for help on using the changeset viewer.