All sec functions are guarded with privs. You have to assign a role to the
user that runs the module that has that priv, or it has to be the admin
role. Security role has that priv, but for just checking existence,
assigning that role is perhaps a bit much.. ;-)



Kind regards,

Geert



*Van:* [email protected] [mailto:
[email protected]] *Namens *Harry B.
*Verzonden:* zaterdag 27 oktober 2012 1:22
*Aan:* MarkLogic Developer Discussion
*Onderwerp:* Re: [MarkLogic Dev General] Select a database in the xqy
script?



When I threw this into an application, I ran into a problem with not having
an execute privilege (which was odd), but once that was added, it returned
true in the application as well as query console. The execute privilege I
had to add was http://marklogic.com/xdmp/privileges/get-user



When that was missing, though, I got a 500 error, not false. Not sure this
helps you at all, but I am seeing "true" for any user both in QC and an
app. I am running v.5.0-3.3





On Fri, Oct 26, 2012 at 4:36 PM, Kalinosky, Mary <[email protected]>
wrote:

Well, I tried the following and still got the expected results in the query
console, but not in an .xqy  file. When the user exists, I get true in the
QC and false in the application.



xquery version "1.0-ml";

import module namespace sec = "http://marklogic.com/xdmp/security"; at
"/MarkLogic/security.xqy";



let $uname := 'my_user_name'

let $func_str := fn:concat('xquery version "1.0-ml"; import module
namespace sec = "http://marklogic.com/xdmp/security"; at
"/MarkLogic/security.xqy"; sec:user-exists("',$uname,'")')

let $opts_node :=            ( <options xmlns="xdmp:eval">


<database>{xdmp:security-database()}</database>

                                                </options> )

let $existing_user := xdmp:eval( $func_str, (), $opts_node )

return $ existing_user



Not sure what to try next.



Thanks,



Mary Kalinosky
eProducts
Thieme Medical Publishers
333 Seventh Avenue, New York, NY 10001 USA

Ruedigerstrasse 14, 70469 Stuttgart, Germany

Email: [email protected]
Tel: +1 212 584-4684
www.thieme.com

*Thieme eNeurosurgery:
The world's most comprehensive neurosurgical resource online.*



*From:* [email protected] [mailto:
[email protected]] *On Behalf Of *Dave Cassel
*Sent:* Friday, October 26, 2012 5:35 PM
*To:* MarkLogic Developer Discussion
*Subject:* Re: [MarkLogic Dev General] Select a database in the xqy script?



Hi Mary,



sec:user-exists() <http://docs.marklogic.com/sec:user-exists> needs to be
run against the security database, which you probably did in QC. To do that
inside your app, wrap it in an xdmp:eval():



xdmp:eval(

  'xquery version "1.0-ml";

   import module namespace sec = "http://marklogic.com/xdmp/security"; at
"/MarkLogic/security.xqy";



   sec:user-exists("my_user_name")',

  <options xmlns="xdmp:eval">

    <database>{xdmp:security-database()}</database>

  </options>

)



*David Cassel*

Vanguard Technical Manager

MarkLogic Corporation <http://marklogic.com/>





*From: *"Kalinosky, Mary" <[email protected]>
*Reply-To: *MarkLogic Developer Discussion <[email protected]>
*Date: *Fri, 26 Oct 2012 14:13:47 -0700
*To: *"[email protected]" <[email protected]>
*Subject: *[MarkLogic Dev General] Select a database in the xqy script?



Hello All,



How can I find which database my .xqy file is executing against?



I typed the following into my query console and got "true" which is the
expected result.



xquery version "1.0-ml";

import module namespace sec = "http://marklogic.com/xdmp/security"; at
"/MarkLogic/security.xqy";



let $existing_user := sec:user-exists("my_user_name")



return

xdmp:quote( $existing_user )

In my application, however, it returns false, even though I've configured
the app server to use the Security database.



Thanks in advance.



Mary Kalinosky
eProducts
Thieme Medical Publishers
333 Seventh Avenue, New York, NY 10001 USA

Ruedigerstrasse 14, 70469 Stuttgart, Germany

Email: [email protected]
Tel: +1 212 584-4684
www.thieme.com

*Thieme eNeurosurgery:
The world's most comprehensive neurosurgical resource online.*




_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to