3[ F 7G 7HI F 7J KL KM NO NP QR QS TU TV 7W XY Z[\ 7]^ F_ ` a b cde Ff F g hi !F !g jk jl mno 'p q rstu +avwx yz c{ 7| 7}~ 7 7 7 7 7 c 7 ?a @ 7 J   G G JF @   O J J c 7 J G c N K              ? qa   +$ b   7 7 J Jn 7  q cguidLjava/lang/String;hasSubTreeAccessControlZ subTreeListLjava/util/Vector;TOPLEVELSTARTNODEIDJ ConstantValue logMetacatLorg/apache/log4j/Logger;(Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis-Ledu/ucsb/nceas/metacat/PermissionController;myDociddocIdrevI Exceptions()Z hasPermission'(Ljava/lang/String;Ljava/lang/String;)Z sessionId myPermission sessionData)Ledu/ucsb/nceas/metacat/util/SessionData; StackMapTable:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ze4Ledu/ucsb/nceas/metacat/shared/MetacatUtilException; userSession&Lorg/dataone/service/types/v1/Session;subject&Lorg/dataone/service/types/v1/Subject;pid)Lorg/dataone/service/types/v1/Identifier;sysMeta-Lorg/dataone/service/types/v2/SystemMetadata;Ljava/lang/Exception;usergroups[Ljava/lang/String; userPackage permissionisOwner\t([Ljava/lang/String;I)Z principalsstartIdhasPermissionForInlineDataL(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z controllerLjava/sql/SQLException; inlineDataIdhasPermissionForSubTreeNode;(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;J)Ztree Ledu/ucsb/nceas/metacat/SubTree;startstopnodeIdflagunaccessableSubTreeLjava/util/Hashtable;enLjava/util/Enumeration;hasUnaccessableSubTreeN(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable;eeiresultUnaccessableSubTreemergeEquivalentSubtree,(Ljava/util/Hashtable;)Ljava/util/Hashtable;subTree subTreeIdsubTreeStartId subTreeEndIdtreeIdendIdenuunAccessSubTreenewSubTreeHash needDeleteisAccessDocument1Ledu/ucsb/nceas/metacat/McdbDocNotFoundException;rsLjava/sql/ResultSet;hasRowdoctypepnfe4Ledu/ucsb/nceas/utilities/PropertyNotFoundException;pStmtLjava/sql/PreparedStatement;conn.Ledu/ucsb/nceas/metacat/database/DBConnection; serialNumbercontainDocumentOwner([Ljava/lang/String;)Z lengthOfArray isAllowFirst([Ljava/lang/String;J)ZpermissionOrdersqltopLever hasAllowRule([Ljava/lang/String;IJ)ZpermissionValueInTablesqlEallowpermissionValuehasExplicitDenyRuletopLevelcreateUsersPackage:(Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;lengthOfPackage usersPackagegetUnReadableInlineDataIdListN(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Hashtable;docidinlineDataListLocalVariableTypeTable;Ljava/util/Hashtable; Signaturet(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Hashtable;getUnWritableInlineDataIdListO(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/util/Hashtable;docidWithoutRev withRevisionu(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/util/Hashtable;getUnAccessableInlineDataIdList`(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable; allIdListfileIdunAccessibleIdList+Ljava/util/Enumeration;(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Ljava/util/Hashtable;getAllInlineDataIdList)(Ljava/lang/String;)Ljava/util/Hashtable;()V SourceFilePermissionController.java C java/util/Vector            2edu/ucsb/nceas/metacat/shared/MetacatUtilException java/lang/StringBuilder"Error checking for administrator:       $org/dataone/service/types/v1/Session$org/dataone/service/types/v1/Subject  'org/dataone/service/types/v1/Identifier   +org/dataone/service/types/v2/SystemMetadata   java/lang/Exception(Error checking for DataONE permissions: Checking permission on  for user:  and groups:     ! () 6edu/ucsb/nceas/utilities/access/AccessControlInterface +edu/ucsb/nceas/metacat/PermissionController   &!  !SPermissionController.hasPermission - There is a exception in hasPermission method:  ! java/sql/SQLException$edu/ucsb/nceas/metacat/McdbException "# $ %&edu/ucsb/nceas/metacat/SubTree '( )(java/util/Hashtable * +, -.java/lang/Long / 0 12`PermissionController.hasUnaccessableSubTree - error in PermissionControl.hasUnaccessableSubTree 3! 4 5;PermissionController.mergeEquivalentSubtree - the subtree: l need to be get rid of from unaccessable subtree list becuase it is a subtree of another subtree in the list 6! 7/edu/ucsb/nceas/metacat/McdbDocNotFoundException 8PermissionControl.isAccessDoc9 :; <,5select doctype from xml_documents where docid like ? => ?@ A BC D EF GCxml.accessdoctypeH IJ KL M NO>PermissionControl.isAccessDocument Error checking on document . 2edu/ucsb/nceas/utilities/PropertyNotFoundException!PermissionControl.containDocOnwerSELECT 'x' FROM xml_documents WHERE docid = ? AND lower(user_owner) = ? UNION ALL SELECT 'x' FROM xml_revisions WHERE docid = ? AND lower(user_owner) = ? EPermissionController.containDocumentOwner - the principle stack is : :PermissionController.containDocumentOwner - find the owner?PermissionControl.hasPermission - Error checking ownership for  on document #fSELECT perm_order FROM xml_access WHERE lower(principal_name) = ? AND guid = ? AND startnodeid is NULLbSELECT perm_order FROM xml_access WHERE lower(principal_name) = ? AND guid = ? AND startnodeid = ?AccessControlList.isAllowFirst PQ allowFirst RSKPermissionController.isAllowFirst - There is no permission record for user  at document xSELECT permission FROM xml_access WHERE guid = ? AND lower(principal_name) = ? AND perm_type = ? AND startnodeid is NULLtSELECT permission FROM xml_access WHERE guid = ? AND lower(principal_name) = ? AND perm_type = ? AND startnodeid = ?AccessControlList.hasAllowRule#Checking permission for principal: SQL: TU!PermissionControl.hasExplicitDenydenypublicjava/lang/String VRPermissionController.createUsersPackage - after transfer to lower case(not null): NPermissionController.createUsersPackage - after transfer to lower case(null): READ 9:WRITE @A W# FPermissionController.getUnAccessableInlineDataIdList - Put subtree id  and inline data file name  into un hashWSELECT subtreeid, guid FROM xml_access WHERE accessfileid = ? AND subtreeid IS NOT NULLPermissionControl.getDataSetId X YZjava/lang/Object'edu/ucsb/nceas/metacat/util/SessionDatajava/util/Enumerationjava/sql/PreparedStatement,edu/ucsb/nceas/metacat/database/DBConnectionjava/sql/ResultSetjava/lang/Throwable(edu/ucsb/nceas/metacat/util/DocumentUtil getSmartDocId&(Ljava/lang/String;)Ljava/lang/String;getRevisionFromAccessionNumber(Ljava/lang/String;)I(edu/ucsb/nceas/metacat/IdentifierManager getInstance,()Ledu/ucsb/nceas/metacat/IdentifierManager;getGUID'(Ljava/lang/String;I)Ljava/lang/String;-edu/ucsb/nceas/metacat/service/SessionService1()Ledu/ucsb/nceas/metacat/service/SessionService;getRegisteredSession=(Ljava/lang/String;)Ledu/ucsb/nceas/metacat/util/SessionData; getUserName()Ljava/lang/String; getGroupNames()[Ljava/lang/String;6edu/ucsb/nceas/metacat/accesscontrol/AccessControlListintValue$edu/ucsb/nceas/metacat/util/AuthUtilisAdministrator((Ljava/lang/String;[Ljava/lang/String;)Zappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; getMessagetoStringorg/apache/log4j/Loggerwarn*(Ljava/lang/Object;Ljava/lang/Throwable;)VsetValue setSubject)(Lorg/dataone/service/types/v1/Subject;)V9edu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService=()Ledu/ucsb/nceas/metacat/dataone/hazelcast/HazelcastService;getSystemMetadataMap()Lcom/hazelcast/core/IMap;com/hazelcast/core/IMapget&(Ljava/lang/Object;)Ljava/lang/Object;getRightsHolder(()Lorg/dataone/service/types/v1/Subject;equals(Ljava/lang/Object;)Z+edu/ucsb/nceas/metacat/dataone/D1AuthHelperexpandRightsHolderO(Lorg/dataone/service/types/v1/Subject;Lorg/dataone/service/types/v1/Subject;)Zjava/util/Arrays'([Ljava/lang/Object;)Ljava/lang/String;debug(Ljava/lang/Object;)Velements()Ljava/util/Enumeration;hasMoreElements nextElement()Ljava/lang/Object;getStartNodeId()J getEndNodeId(Ljava/lang/Exception;)Vsize()I elementAt(I)Ljava/lang/Object;(J)V containsKeyput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;errorisEmpty getSubTreeIdinfo getLocalIdgetDocIdFromString0edu/ucsb/nceas/metacat/database/DBConnectionPoolgetDBConnectionB(Ljava/lang/String;)Ledu/ucsb/nceas/metacat/database/DBConnection;getCheckOutSerialNumberprepareStatement0(Ljava/lang/String;)Ljava/sql/PreparedStatement; setString(ILjava/lang/String;)Vexecute getResultSet()Ljava/sql/ResultSet;next getString(I)Ljava/lang/String;close1edu/ucsb/nceas/metacat/properties/PropertyService getProperty'edu/ucsb/nceas/metacat/util/MetacatUtil getOptionList&(Ljava/lang/String;)Ljava/util/Vector;containsreturnDBConnection2(Ledu/ucsb/nceas/metacat/database/DBConnection;I)VsetLong(IJ)VequalsIgnoreCase(Ljava/lang/String;)ZgetInt(I)I toLowerCasekeystrim getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;!7 4****YM>+M+>* , * RB DFUVY"Z']3_*44@/*f N + N-*- -,jk lmp*? :6:-6+,,+,$:Y6Y:Y:  + !Y":  *#$% &':  ( )6 ( *6':Y,-6Y.*/+0,12*+,3:*4*66 *66$(L+!~ #%(*ILU^dkt}  -7*UW^N t8  "::::74 .L  B bB#R ?4^ B*+8*+!9*+!:*+!;*+!;:Y<-= =+ =+!,=+-.=+/:=+;<=+F !+-/9;=?PY\4?^^^\   A??*+,3:*87Y*>:+,-:@YAB0?/0?" !'"0$2%R 2 ?????7 \@!S6*+,-C:D:E6FG:  H7  I7   62 13 568)90:7<G>J?MAPBp )$ 0 7 SSSSSP G@9@ JJYK::-6+,,*+,3:*8:@YL6*M*NG:H7 * 9j* :(OY PQ~OY PRWj* ;ZOY PQIOY PRW5* ;%OY PQOY PRW,: YS -T@Y L *U:*59?i +!N O PSU"Y*]3_6e9b;dEhTjbkiptsxz} #,/9h?Gz ; ' bi HJJJJ A >8,B ]$!B(@)˻JYKM>+ +V,+D:EFG:W:H7I7 +D:  E[ FG:  W:  H7 I7/ '>YXYZ,OYPRW>W,j '3:AHNXdkrydI kB r;y43:AH~ Nx  H0 ^ 1L *[LM+]LMN6^_N-`6-abM,+c,dW,e:f6: g:,h3ijkl#6,h-m: -m ,h-m: -m v:?YYn+oAp:?YYn+orp: ,h-m: -m    \?q!!#!3 %+2:AIRUZd j qty !), /"p IVRM UJ ((  1/ P,  N Bii  ?aM *[M,]MN+>::6s_:`6tb:6,c+2c,c+2cYu+2ZdWe:  f65hvZ6 hm: m  `hm: m a:h?YYw+2x,oAp: hm:m  \$??$==?FPPRP?=346 7;8:=?@!A$F+G2H;PDTMUYVbWnX[\]^`abtxyxybPtxyxyzgi k0n=r?tFxMyPxYy\z_{z @ = >:aa_FC !@$=%   P B{ ?Xk+6::6: 6 6 y: z: {_:`6 b:6  + 2c*c  |dWe:  f6k g:  }~-h6hm:mh6hm:m Ihm:m*:  :hm:m+YY+2*   '???'   ")3353" 9  #'.5>HT`env   ")03<?B^ v s A  kkkgd  a ^[ X # ,M   P BD  ?+ !D+66:6 : 6 6 :! 6 : 6 :_:  `6  b:*cc !|6Y+22Y2+2cdWe:f6   ~ 6߄|h  m:  m/:::h  m:  m0?0+0!(2242!1  "),07>GS]bk#u%&()*+-14#EIJIJK9;=?C!E(I/J2I;J>KAL" *n#DDDD@=$ :  7% 4 1 . +):\#P BDD ?+&!&+6:6: 6 : 6 ! 6 : 6 : _:  `6   b:*cc !|6n+2cdWe:fA6  ~h6h  m:  mh  m:  m*::h  m:  m -??- 3]_` b cdehjk&t)u-4;DPZ_hr~ !$4" Nkr&&&&"  %    ' & :#8  P BD  ?()IN,+~,`6N+(-+SY-2Z)-+S-+SY-2Z-S6,d2-,d2Sw,`6N-S6,d2-,d2S=+~&6N+ -+S-+S-S6N-S-"&DHOjoy    f r#*#4* * + *-D%  ,-i *+,N- " %* .   /0  /1@23 45u *+,: 7 :4 6   7 /0  /1+28 9: JYK:+*::@YAB:EqF::7Y*>:  +,-?Y-ZRW?FG H INQOP(R/S9UEVQY[Zh]aefz ; E_QS<[I . =(;/{0 =1/{>Ht@2? @Ai һJYKLMN::6_:`6,bN-*c-dW-e:fGg:g:+ +RW-hm: m $: -hm: m  +!qr w xyz~$+3:BLV`y\ V7`-./   g BJO B  ?BC! 7KDE