<!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 Class</span></a></li> <li><a href="../../../../edu/ucsb/nceas/metacat/PINode.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next 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 Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../../../../allclasses-noframe.html">All 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: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </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"> </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 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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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<java.lang.String,java.lang.String></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 docid, java.lang.String user, java.lang.String[] 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<java.lang.String,java.lang.String></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 docidWithoutRev, java.lang.String user, java.lang.String[] groups, boolean 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 sessionId, java.lang.String myPermission)</code> </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 user, java.lang.String[] groups, java.lang.String 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 user, java.lang.String[] groups, java.lang.String myPermission, long 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 user, java.lang.String[] groups, java.lang.String 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 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 PermissionController(java.lang.String 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 boolean 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 boolean hasPermission(java.lang.String sessionId, java.lang.String 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 boolean hasPermission(java.lang.String user, java.lang.String[] groups, java.lang.String 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 boolean hasPermissionForSubTreeNode(java.lang.String user, java.lang.String[] groups, java.lang.String myPermission, long 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 java.util.Hashtable hasUnaccessableSubTree(java.lang.String user, java.lang.String[] groups, java.lang.String 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 java.util.Hashtable<java.lang.String,java.lang.String> getUnReadableInlineDataIdList(java.lang.String docid, java.lang.String user, java.lang.String[] 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 java.util.Hashtable<java.lang.String,java.lang.String> getUnWritableInlineDataIdList(java.lang.String docidWithoutRev, java.lang.String user, java.lang.String[] groups, boolean 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 Class</span></a></li> <li><a href="../../../../edu/ucsb/nceas/metacat/PINode.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next 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 Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../../../../allclasses-noframe.html">All 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: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </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>