xquery version "3.0"; (: $Id: admin.xql 14995 2011-07-30 19:57:47Z dizzzz $ :) (: Main module of the database administration interface. :) declare namespace admin = "http://exist-db.org/xquery/admin-interface"; declare namespace request = "http://exist-db.org/xquery/request"; declare namespace response = "http://exist-db.org/xquery/response"; declare namespace util = "http://exist-db.org/xquery/util"; declare namespace xdb = "http://exist-db.org/xquery/xmldb"; declare function admin:isLoggedIn() as xs:boolean{ if(xdb:get-current-user() eq "guest") then ( false() ) else ( (: TODO: check for rights #25 :) true() ) }; declare option exist:serialize "indent=yes method=xhtml media-type=text/html doctype-public=-//W3C//DTD XHTML 1.0 Strict//EN doctype-system=http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"; (: main entry point :) let $isLoggedIn := admin:isLoggedIn() return ( save XForm
{ if($isLoggedIn) then (
{ let $fileName := request:get-parameter("name", "metadata.xml")[1] let $data := request:get-data() return if($data)then(
Saved metadata file at: {xdb:decode-uri(xs:anyURI(xdb:store("/db/rebind/protected/Zippel/", $fileName, $data)))}
)else( let $code := response:set-status-code(400) return
No Data transmitted
) }
) else ( let $code := response:set-status-code(403) return () ) }
)