From 86d279617cc50d79011b1708b49e148e4bdc6420 Mon Sep 17 00:00:00 2001
From: Mike McKay <mfmckay@wustl.edu>
Date: Tue, 17 May 2016 20:50:34 -0500
Subject: [PATCH] Fixed project page for project members by making it behave
 like it did in XNAT 1.6. For users who are members but not owners of a
 project, the Access, Manage, and Pipelines tabs do not show up, and they
 cannot edit anything on the Details tab. We can revisit this later if needed,
 but existing behavior should be sufficient for the beta.

---
 .../project/widgets/project_summary_status.vm |  2 +-
 .../xnat_projectData_summary_details.vm       |  2 +-
 .../xnat_projectData_summary_management.vm    |  1 +
 .../xnat_projectData_summary_status.vm        |  2 +-
 .../xnat_projectData_summary_tabs.vm          | 20 ++++++-------------
 5 files changed, 10 insertions(+), 17 deletions(-)

diff --git a/src/main/webapp/xnat-templates/screens/project/widgets/project_summary_status.vm b/src/main/webapp/xnat-templates/screens/project/widgets/project_summary_status.vm
index e0dc1fd1..a907bdf1 100644
--- a/src/main/webapp/xnat-templates/screens/project/widgets/project_summary_status.vm
+++ b/src/main/webapp/xnat-templates/screens/project/widgets/project_summary_status.vm
@@ -16,7 +16,7 @@
 #if($other == 0)
 <DIV class="containerItem" style="color:grey">$other Other Experiments</DIV>
 #end
-#if($data.getSession().getAttribute("userHelper").canCreate($project))
+#if($data.getSession().getAttribute("userHelper").isOwner($project.getId()))
 <BR><A ID="button5" href="$link.setAction("XDATActionRouter").addPathInfo("xdataction","protocols").addPathInfo(
     "search_element","xnat:projectData").addPathInfo("search_field","xnat:projectData.ID").addPathInfo(
     "search_value","$!{project.getId()}").addPathInfo("popup","$!popup")">Manage Custom Variables</A>
diff --git a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_details.vm b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_details.vm
index caccbb40..09579df0 100644
--- a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_details.vm
+++ b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_details.vm
@@ -48,7 +48,7 @@
         </tr>
     #end
 </table>
-#if($data.getSession().getAttribute("userHelper").canCreate($project))
+#if($data.getSession().getAttribute("userHelper").isOwner($project.getId()))
 <BR><A ID="button1" href="$link.setAction("XDATActionRouter").addPathInfo("xdataction","edit").addPathInfo(
     "search_element","xnat:projectData").addPathInfo("search_field","xnat:projectData.ID").addPathInfo(
     "search_value","$!{project.getId()}").addPathInfo("popup","$!popup")">Edit Details</A>
diff --git a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_management.vm b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_management.vm
index 7e8f2d91..b6807c98 100644
--- a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_management.vm
+++ b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_management.vm
@@ -101,6 +101,7 @@
             </script>
         </td>
     </tr>
+
 </table>
 <script language="javascript">
     function summaryUserTabChange(obj){
diff --git a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_status.vm b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_status.vm
index 17cccd68..85be0004 100644
--- a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_status.vm
+++ b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_status.vm
@@ -7,7 +7,7 @@
     "userHelper").getBrowseableElementDisplay($key).getSchemaElement().getPluralDescription()</DIV>
 #end
 
-#if($data.getSession().getAttribute("userHelper").canCreate($project))
+#if($data.getSession().getAttribute("userHelper").isOwner($project.getId()))
 <BR><A ID="button5" href="$link.setAction("XDATActionRouter").addPathInfo("xdataction","protocols").addPathInfo(
     "search_element","xnat:projectData").addPathInfo("search_field","xnat:projectData.ID").addPathInfo(
     "search_value","$!{project.getId()}").addPathInfo("popup","$!popup")">Manage Custom Variables</A>
diff --git a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_tabs.vm b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_tabs.vm
index b734819a..e154a266 100644
--- a/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_tabs.vm
+++ b/src/main/webapp/xnat-templates/screens/xnat_projectData/xnat_projectData_summary_tabs.vm
@@ -5,12 +5,10 @@
             <li class="selected"><a href="#tab1"><em>Details</em></a></li>
             #set($canReadSubjects=$data.getSession().getAttribute("userHelper").canRead(
                 "xnat:subjectData/project","$project.getId()"))
-            #if($canReadSubjects)
-                #if($data.getSession().getAttribute("userHelper").canDelete($project))
+            #if($data.getSession().getAttribute("userHelper").isOwner($project.getId()))
                     <li><a href="#tab3"><em>Access</em></a></li>
                     <li><a href="#othermgmt"><em>Manage</em></a></li>
                     <li><a href="#tab4"><em>Pipelines</em></a></li>
-                #end
             #end
             #foreach($tab in $tabs)
                 <li><a href="#$tab.getProperty("divName")"><em>$tab.getProperty("title")
@@ -23,8 +21,7 @@
                 <p>#parse($turbineUtils.getTemplateName("_summary_details","xnat:projectData",$project.getId()))</p>
             </div>
 
-            #if($canReadSubjects)
-                #if($data.getSession().getAttribute("userHelper").canCreate($project))
+            #if($data.getSession().getAttribute("userHelper").isOwner($project.getId()))
                     <div id="tab3">
                         <p>#parse($turbineUtils.getTemplateName(
                             "_summary_management","xnat:projectData",$project.getId()))</p>
@@ -37,7 +34,6 @@
                         <p>#parse($turbineUtils.getTemplateName(
                             "_summary_pipeline","xnat:projectData",$project.getId()))</p>
                     </div>
-                #end
             #end
             #foreach($tab in $tabs)
                 <div id="$tab.getProperty("divName")">
@@ -60,14 +56,10 @@
         window.summaryTabView = new YAHOO.widget.TabView('projectSummary');
         var oButton1 = new YAHOO.widget.Button("button1");
         var oButton2 = new YAHOO.widget.Button("button2");
-        #if($canReadSubjects)
-            #if($data.getSession().getAttribute("userHelper").canDelete($project))
-                var oButton3 = new YAHOO.widget.Button("button3");
-            #end
-            #if($data.getSession().getAttribute("userHelper").canCreate($project))
-                var oButton4 = new YAHOO.widget.Button("button4");
-                var oButton5 = new YAHOO.widget.Button("button5");
-            #end
+        #if($data.getSession().getAttribute("userHelper").isOwner($project.getId()))
+            var oButton3 = new YAHOO.widget.Button("button3");
+            var oButton4 = new YAHOO.widget.Button("button4");
+            var oButton5 = new YAHOO.widget.Button("button5");
         #end
 
 
-- 
GitLab