<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_265) on Tue Aug 25 19:30:51 UTC 2020 -->
<title>PermissionController (MetaCat API)</title>
<meta name="date" content="2020-08-25">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="PermissionController (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PermissionController.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../edu/ucsb/nceas/metacat/PathIndexEntry.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/PINode.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/PermissionController.html" target="_top">Frames</a></li>
<li><a href="PermissionController.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">edu.ucsb.nceas.metacat</div>
<h2 title="Class PermissionController" class="title">Class PermissionController</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.PermissionController</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">PermissionController</span>
extends java.lang.Object</pre>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#PermissionController-java.lang.String-">PermissionController</a></span>(java.lang.String&nbsp;myDocid)</code>
<div class="block">Constructor for PermissionController</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static java.util.Hashtable&lt;java.lang.String,java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#getUnReadableInlineDataIdList-java.lang.String-java.lang.String-java.lang.String:A-">getUnReadableInlineDataIdList</a></span>(java.lang.String&nbsp;docid,
                             java.lang.String&nbsp;user,
                             java.lang.String[]&nbsp;groups)</code>
<div class="block">A static method to get Hashtable which cointains a inlinedata object list that
 user can't read it.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static java.util.Hashtable&lt;java.lang.String,java.lang.String&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#getUnWritableInlineDataIdList-java.lang.String-java.lang.String-java.lang.String:A-boolean-">getUnWritableInlineDataIdList</a></span>(java.lang.String&nbsp;docidWithoutRev,
                             java.lang.String&nbsp;user,
                             java.lang.String[]&nbsp;groups,
                             boolean&nbsp;withRevision)</code>
<div class="block">A static method to get Hashtable which cointains a inline  data object list that
 user can't overwrite it.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#hasPermission-java.lang.String-java.lang.String-">hasPermission</a></span>(java.lang.String&nbsp;sessionId,
             java.lang.String&nbsp;myPermission)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#hasPermission-java.lang.String-java.lang.String:A-java.lang.String-">hasPermission</a></span>(java.lang.String&nbsp;user,
             java.lang.String[]&nbsp;groups,
             java.lang.String&nbsp;myPermission)</code>
<div class="block">Check from db connection if at least one of the list of @principals
 Administrators are allowed all permission</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#hasPermissionForSubTreeNode-java.lang.String-java.lang.String:A-java.lang.String-long-">hasPermissionForSubTreeNode</a></span>(java.lang.String&nbsp;user,
                           java.lang.String[]&nbsp;groups,
                           java.lang.String&nbsp;myPermission,
                           long&nbsp;nodeId)</code>
<div class="block">The method to determine of a node can be access by a user just by subtree
 access control</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#hasSubTreeAccessControl--">hasSubTreeAccessControl</a></span>()</code>
<div class="block">Return if a document has subtree access control</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.util.Hashtable</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/PermissionController.html#hasUnaccessableSubTree-java.lang.String-java.lang.String:A-java.lang.String-">hasUnaccessableSubTree</a></span>(java.lang.String&nbsp;user,
                      java.lang.String[]&nbsp;groups,
                      java.lang.String&nbsp;myPermission)</code>
<div class="block">This method will return a hasTable of subtree which user doesn't has the
 permssion to access</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="PermissionController-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PermissionController</h4>
<pre>public&nbsp;PermissionController(java.lang.String&nbsp;myDocid)
                     throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">Constructor for PermissionController</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>myDocid</code> - the docid need to access</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="hasSubTreeAccessControl--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasSubTreeAccessControl</h4>
<pre>public&nbsp;boolean&nbsp;hasSubTreeAccessControl()</pre>
<div class="block">Return if a document has subtree access control</div>
</li>
</ul>
<a name="hasPermission-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasPermission</h4>
<pre>public&nbsp;boolean&nbsp;hasPermission(java.lang.String&nbsp;sessionId,
                             java.lang.String&nbsp;myPermission)
                      throws java.sql.SQLException</pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
</dl>
</li>
</ul>
<a name="hasPermission-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasPermission</h4>
<pre>public&nbsp;boolean&nbsp;hasPermission(java.lang.String&nbsp;user,
                             java.lang.String[]&nbsp;groups,
                             java.lang.String&nbsp;myPermission)
                      throws java.sql.SQLException</pre>
<div class="block">Check from db connection if at least one of the list of @principals
 Administrators are allowed all permission</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user name</dd>
<dd><code>groups</code> - the groups which the use is in</dd>
<dd><code>myPermission</code> - permission type to check for</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.sql.SQLException</code></dd>
</dl>
</li>
</ul>
<a name="hasPermissionForSubTreeNode-java.lang.String-java.lang.String:A-java.lang.String-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasPermissionForSubTreeNode</h4>
<pre>public&nbsp;boolean&nbsp;hasPermissionForSubTreeNode(java.lang.String&nbsp;user,
                                           java.lang.String[]&nbsp;groups,
                                           java.lang.String&nbsp;myPermission,
                                           long&nbsp;nodeId)
                                    throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">The method to determine of a node can be access by a user just by subtree
 access control</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="hasUnaccessableSubTree-java.lang.String-java.lang.String:A-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasUnaccessableSubTree</h4>
<pre>public&nbsp;java.util.Hashtable&nbsp;hasUnaccessableSubTree(java.lang.String&nbsp;user,
                                                  java.lang.String[]&nbsp;groups,
                                                  java.lang.String&nbsp;myPermission)
                                           throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">This method will return a hasTable of subtree which user doesn't has the
 permssion to access</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>user</code> - the user name</dd>
<dd><code>groups</code> - the groups which the use is in</dd>
<dd><code>myPermission</code> - permission type to check for</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUnReadableInlineDataIdList-java.lang.String-java.lang.String-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnReadableInlineDataIdList</h4>
<pre>public static&nbsp;java.util.Hashtable&lt;java.lang.String,java.lang.String&gt;&nbsp;getUnReadableInlineDataIdList(java.lang.String&nbsp;docid,
                                                                                                   java.lang.String&nbsp;user,
                                                                                                   java.lang.String[]&nbsp;groups)
                                                                                            throws <a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></pre>
<div class="block">A static method to get Hashtable which cointains a inlinedata object list that
 user can't read it. The key is subtree id of inlinedata, the data is
 internal file name for the inline data which is stored as docid
 in xml_access table or data object doc id.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>docid</code> - (With Rev), metadata docid which should be the accessfileid
                         in the table</dd>
<dd><code>user</code> - , the name of user</dd>
<dd><code>groups,</code> - the group which the user belong to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../edu/ucsb/nceas/metacat/McdbException.html" title="class in edu.ucsb.nceas.metacat">McdbException</a></code></dd>
</dl>
</li>
</ul>
<a name="getUnWritableInlineDataIdList-java.lang.String-java.lang.String-java.lang.String:A-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getUnWritableInlineDataIdList</h4>
<pre>public static&nbsp;java.util.Hashtable&lt;java.lang.String,java.lang.String&gt;&nbsp;getUnWritableInlineDataIdList(java.lang.String&nbsp;docidWithoutRev,
                                                                                                   java.lang.String&nbsp;user,
                                                                                                   java.lang.String[]&nbsp;groups,
                                                                                                   boolean&nbsp;withRevision)
                                                                                            throws java.lang.Exception</pre>
<div class="block">A static method to get Hashtable which cointains a inline  data object list that
 user can't overwrite it. The key is subtree id of inline data distrubition,
 the value is internal file name for the inline data which is stored as docid
 in xml_access table or data object doc id.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>docidWithoutRev,</code> - metadata docid which should be the accessfileid
                         in the table</dd>
<dd><code>user</code> - , the name of user</dd>
<dd><code>groups,</code> - the group which the user belong to</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PermissionController.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../edu/ucsb/nceas/metacat/PathIndexEntry.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/PINode.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/PermissionController.html" target="_top">Frames</a></li>
<li><a href="PermissionController.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><i>Copyright © 2020 Regents of the University of California. All Rights Reserved.</i></small></p>
</body>
</html>