Hi Tim, I think the basic idea of your function is alright. But since you are only interested in the current-user's roles, you might want to use xdmp:get-current-roles in your comparison instead. I haven't checked, but I would expect this function not to depend on privileges..
Kind regards, Geert -----Oorspronkelijk bericht----- Van: [email protected] [mailto:[email protected]] Namens Tim Finney Verzonden: dinsdag 6 september 2011 22:19 Aan: [email protected] Onderwerp: [MarkLogic Dev General] Simple way to decide if a user has a role Hi Everyone, Is there a simple way to determine whether a user has a particular role name? I would like to have a function that I give a role name and which returns true if the current user has the role and false otherwise. I want this function so that I can make a user interface change available options depending on the current user's roles. I would like the function to work even if the current user doesn't have the xdmp-user-roles privilege. I would prefer not to have to create an amped function to do this. My current hack looks like this: declare function s:user-has-role( $role as xs:string ) as xs:boolean { try { xdmp:role($role) = xdmp:user-roles(xdmp:get-current-user()) } catch ($e) { fn:false() } }; This works fine if the current user has the xdmp-user-roles privilege. However, if the user doesn't have this privilege then the function always returns false regardless of whether the user has the specified role name. Best, Tim Finney _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
