Search code examples
xpageslotus-dominolotus

Xpages ViewPanel - Not authorized to perform search


I've a problem with search within xpages ViewPanel. I have the following ViewPanel

<xp:viewPanel rows="7" id="viewPanel1">     
    <xp:this.data>
        <xp:dominoView var="view1"
            databaseName="myServer!!myDbPath"
            viewName="suppliers" search="*my_keyword*">
        </xp:dominoView>
    </xp:this.data>
    <xp:viewColumn columnName="Name"
        id="viewColumn1">
        <xp:viewColumnHeader value="Name" id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
</xp:viewPanel>

The viewpanel displays documents form another server. There is a pretty simple FTSearch (I've even turned off dynamic search here for testing). I'm getting an error:

 NotesException: Notes error: You are not authorized to perform that operation
 lotus.domino.local.View.NFTSearchSorted(Native Method)
 lotus.domino.local.View.FTSearchSorted(Unknown Source)

If I turn off the search i see documents within the panel (so it confirms tha I have ACL access to database and documents). That changes when I turn on the search. What am I doing wrong?

Here is the full stack.

com.ibm.xsp.FacesExceptionEx: Notes error: You are not authorized to perform that operation
    com.ibm.xsp.model.domino.viewnavigator.AbstractViewCollectionNavigator.readEntries(AbstractViewCollectionNavigator.java:101)
    com.ibm.xsp.model.domino.wrapped.DominoViewEntryArray.readEntries(DominoViewEntryArray.java:104)
    com.ibm.xsp.model.domino.DominoViewDataContainer.readViewEntries(DominoViewDataContainer.java:548)
    com.ibm.xsp.model.domino.DominoViewDataContainer.getRowCount(DominoViewDataContainer.java:527)
    com.ibm.xsp.model.domino.DominoViewDataModel.getRowCount(DominoViewDataModel.java:109)
    com.ibm.xsp.model.TabularDataModel.isRowAvailable(TabularDataModel.java:96)
    javax.faces.component.UIData.isRowAvailable(UIData.java:300)
    javax.faces.component.UIData.setRowIndex(UIData.java:445)
    com.ibm.xsp.component.UIDataEx.setRowIndex(UIDataEx.java:403)
    com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelRows(DataTableRendererEx.java:1433)
    com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelChildren(DataTableRendererEx.java:1416)
    com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeChildren(DataTableRendererEx.java:1388)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    com.ibm.xsp.renderkit.html_extended.ViewPanelRenderer.encodeBegin(ViewPanelRenderer.java:412)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(ReadOnlyAdapterRenderer.java:146)
    javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:956)
    javax.faces.component.UIData.encodeBegin(UIData.java:788)
    com.ibm.xsp.component.UIDataEx.encodeBegin(UIDataEx.java:425)
    com.ibm.xsp.component.UIViewPanel.encodeBegin(UIViewPanel.java:288)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:841)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1317)
    com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1255)
    com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:651)
    com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:321)
    com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:336)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
    com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:270)
    com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:261)
    com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
    com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
NotesException: Notes error: You are not authorized to perform that operation
    lotus.domino.local.View.NFTSearchSorted(Native Method)
    lotus.domino.local.View.FTSearchSorted(Unknown Source)
    com.ibm.xsp.model.domino.viewnavigator.FTViewNavigatorEx.createCollection(FTViewNavigatorEx.java:74)
    com.ibm.xsp.model.domino.viewnavigator.AbstractViewCollectionNavigator.readEntries(AbstractViewCollectionNavigator.java:76)
    com.ibm.xsp.model.domino.wrapped.DominoViewEntryArray.readEntries(DominoViewEntryArray.java:104)
    com.ibm.xsp.model.domino.DominoViewDataContainer.readViewEntries(DominoViewDataContainer.java:548)
    com.ibm.xsp.model.domino.DominoViewDataContainer.getRowCount(DominoViewDataContainer.java:527)
    com.ibm.xsp.model.domino.DominoViewDataModel.getRowCount(DominoViewDataModel.java:109)
    com.ibm.xsp.model.TabularDataModel.isRowAvailable(TabularDataModel.java:96)
    javax.faces.component.UIData.isRowAvailable(UIData.java:300)
    javax.faces.component.UIData.setRowIndex(UIData.java:445)
    com.ibm.xsp.component.UIDataEx.setRowIndex(UIDataEx.java:403)
    com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelRows(DataTableRendererEx.java:1433)
    com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeTabularDataModelChildren(DataTableRendererEx.java:1416)
    com.ibm.xsp.renderkit.html_extended.DataTableRendererEx.encodeChildren(DataTableRendererEx.java:1388)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    com.ibm.xsp.renderkit.html_extended.ViewPanelRenderer.encodeBegin(ViewPanelRenderer.java:412)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeBegin(ReadOnlyAdapterRenderer.java:146)
    javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:956)
    javax.faces.component.UIData.encodeBegin(UIData.java:788)
    com.ibm.xsp.component.UIDataEx.encodeBegin(UIDataEx.java:425)
    com.ibm.xsp.component.UIViewPanel.encodeBegin(UIViewPanel.java:288)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:841)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:852)
    com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1317)
    com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1255)
    com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:651)
    com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:321)
    com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:336)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
    com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:270)
    com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:261)
    com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
    com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)

Solution

  • The ACL was the problem. It seems that documents display is being done on user privilages, but search is being processed on server rights (so I could display view panel but was not allowed to search within it). I've corrected the ACL so the server has Manager rights (LocalDomainServers is set as Server Group, not Server only). Thanks for help!