Hidden Application

classic Classic list List threaded Threaded
68 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Hidden Application

GregChapman
This post was updated on .
Pedro,

You could assist me by installing the necessary code to install a hidden forum that is below root level. If you visit:
http://www.rustonreaches.plus.com/forum.html
you'll see there is a "Shareholders Area" that I would like to be fully hidden.

At first glance it may appear to be immediately below root level so the instructions in my post above should work. However, I have used the code provided on the Support Forum to remove the root level link. That is because I wanted people to be able to access both the "Blog" page and the "Forum" page without needing separate registrations. You can view the entire structure of the Nabble application by visiting the "forumhome.html" page

(This page is not linked within the main site and I use it only to access easily those Nabble options which are only available at the root level hence I don't want search engines indexing it.)

As it stands things are not ideal. Not only is the "Shareholders Area" visible to users in any group (although only accessible by those in the "Shareholders" group) but it is also possible for users to use navigate through the Nabble applications and end up with the "Forum" menu on the main site displaying the "Blog" page and vice versa.

Making the "Shareholders Area" invisible is the first priority, but if you have any further ideas or techniques I could  use that would allow a common registration and membership system while still preventing users managing to switch between "Blog" and "Forum" within the, supposedly, dedicated page for each on the main site I would be grateful.
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Subcategory?

Pedro
Greg, take a look now.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
Hi Pedro,

(Thought I'd better split this topic from Coleen's to make life simpler and I've edited the original post to remove the forumhome page link so search engines won't index it!)

Thanks that certainly does the trick as far as hiding the Shareholders area. However, when someone logs out they get dumped at the root application. That's how people can then see that the Shareholder's Area exists and move between the the "blog" and "forum" while still remaining on the same page as far as the host site's menu system is concerned.

Is it possible to add a variable that records a user's entry point, so that when logging out that can be read to ensure they are returned to the appropriate area, blog or forum, rather than the root forum?

Also could you let me know which macros you've amended. I really must learn more of NAML so I can do some of this stuff myself!
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
GregChapman wrote
Also could you let me know which macros you've amended. I really must learn more of NAML so I can do some of this stuff myself!
I edit standard_table macro, take a look on it at your advanced editor. We can also hide it from your root app, what do you think? We would have to use this same idea at the mixed_table macro.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
In reply to this post by GregChapman
In order to remove your root path for all pages, add this to your naml files:
<override_macro name="breadcrumbs_content" requires="naml_tools">
    NAML<sup class="important">alpha</sup>
</override_macro>

<override_macro name="breadcrumbs_content">
</override_macro>

<override_macro name="breadcrumbs_content" requires="macro_source, naml_tools">
    NAML<sup class="important">alpha</sup>
    | <n.naml_breadcrumbs/>
</override_macro>
I agree that the best way is save the entry point, but it can be useful for now.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
Hi Pedro,

Currently I have an over-ride in place:
<override_macro name="node_breadcrumbs" requires="node">  
    <n.if.is_in_app>  
        <then>  
            <n.get_app_node.>  
                <n.ancestors_list. order="reverse">  
                    <n.loop.>  
                        <n.if.not.current_node.equals.root_node>  
                            <then>  
                                <n.current_node.node_link/><span> &rsaquo; </span>  
                            </then>                              
                        </n.if.not.current_node.equals.root_node>                   
                    </n.loop.>  
                </n.ancestors_list.>  
                <n.node_link/>  
            </n.get_app_node.>  
        </then>  
    </n.if.is_in_app>  
</override_macro>
Do I need to remove this?

What are the benefits/disadvantages of my current and your code?

If I add your code via the "NAML Advanced Editor "Add New File" button, what name do I give the new file?
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
Your code remove the apps path from sub apps. Mine, will remove from other pages. Add it in any file you want, or create a new one with any name.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
Ouch!    That code was a little too powerful!

It even took out the root link on the NAML editor page so I couldn't return to my app so I had to remove it.

Can you suggest an amendment?
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
That was because all users that click on "Edit this page" would be able to see the root path.
I will think in a better solution, maybe show the app path only for admins.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
I've long held the view that the standard Nabble product should only show the "Edit this page" to Administrators and would happily put that mod in all my apps.
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
I don't like the idea of remove "Edit this page". But I've done that for you.
Take a look now at your forum.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
The good news:
That's cleared the "Edit this page" link for my test user (Groups: Anyone, Registered) and it's still there for me ().

The Bad news:
My Test user can see the "Shareholders Area" again

As Admin I'm getting an Nabble app error on clicking on the "Blog" link on the site's main menu.
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
That Error reads:


Error 500

NAML exception in customized site: can't get visitor on cached page
        in visitor(nabble:dropdown.naml:327) - <n.if.visitor.is_site_admin> - public void nabble.view.web.template.ServletNamespace.visitor(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter) throws javax.servlet.ServletException
        in if(custom_tweak:node_breadcrumbs:37) - <n.if.visitor.is_site_admin> - public static void nabble.naml.namespaces.BasicNamespace._if(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in nabble_html(nabble:utilities.naml:19) - <n.nabble_html> - public void nabble.view.web.template.ServletNamespace.nabble_html(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in html_impl(nabble:utilities.naml:4) - <n.html_impl>
        in html(nabble:app.naml:88) - <n.html>
        in do(nabble:utilities.naml:982) - <n.as_node_page.do/>
        in as_node_page(nabble:utilities.naml:982) - <n.as_node_page.do/> - public void nabble.view.web.template.NodeNamespace.as_node_page(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in do(nabble:utilities.naml:987) - <n.get_node_from_request_parameter.do/>
        in get_node_from_request_parameter(nabble:utilities.naml:987) - <n.get_node_from_request_parameter.do/> - public void nabble.view.web.template.ServletNamespace.get_node_from_request_parameter(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter) throws java.io.IOException,javax.servlet.ServletException,nabble.naml.namespaces.TemplateException
        in catch_exception(nabble:utilities.naml:986) - <n.catch_exception. id="get-node-block"> - public void nabble.naml.namespaces.BasicNamespace.catch_exception(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in (nabble:view_news.naml:1) - <subroutine name="view_news" requires="basic,nabble,servlet">
        in view_news(nabble:app.naml:22) - <n.view_news/>
        in case(nabble:app.naml:21) - <n.case. value="news"> - public void nabble.naml.namespaces.BasicNamespace$SwitchNamespace._case(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in switch(nabble:app.naml:2) - <n.switch. value="[n.get_node_from_parameter.type/]"> - public void nabble.naml.namespaces.BasicNamespace._switch(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in (nabble:app.naml:1) - <macro name="view_app" requires="servlet,nabble,basic">

Message: NAML exception in customized site: can't get visitor on cached page

RequestURI: /Ruston-House-Blog-f17.html;cid=1380560662707-534

Server: n5.nabble.com
Caused by:

fschmidt.util.servlet.JtpContextServlet$JtpServletException: url=http://ruston-reaches.1088553.n5.nabble.com/Ruston-House-Blog-f17.html;cid=1380560662707-534  user-agent=Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0 method=GET referer=http://www.rustonreaches.plus.com/blog.html
        at fschmidt.util.servlet.JtpContextServlet.handleException(JtpContextServlet.java:571)
        at fschmidt.util.servlet.JtpContextServlet.service2(JtpContextServlet.java:465)
        at fschmidt.util.servlet.JtpContextServlet.service(JtpContextServlet.java:332)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:565)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1360)
        at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:77)
        at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:144)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
        at cachingfilter.CachingFilter.doFilter(CachingFilter.java:133)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
        at fschmidt.util.servlet.BadBotFilter.doFilter(BadBotFilter.java:74)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
        at fschmidt.util.servlet.ConnectionLimitFilter.doFilter(ConnectionLimitFilter.java:94)
        at nabble.view.lib.NabbleConnectionLimitFilter.doFilter(NabbleConnectionLimitFilter.java:26)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
        at nabble.view.lib.NabbleErrorFilter.doFilter(NabbleErrorFilter.java:21)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:477)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1031)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:965)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
        at org.eclipse.jetty.server.Server.handle(Server.java:349)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:449)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:910)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:634)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:230)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:76)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45)
        at nabble.model.Executors$1$1.run(Executors.java:27)
        at fschmidt.util.executor.ThreadTimer$1.run(ThreadTimer.java:18)
        at fschmidt.util.executor.AbstractThreadPool$1.run(AbstractThreadPool.java:29)
        at java.lang.Thread.run(Thread.java:722)
Caused by: javax.servlet.ServletException: NAML exception in customized site: can't get visitor on cached page
        in visitor(nabble:dropdown.naml:327) - <n.if.visitor.is_site_admin> - public void nabble.view.web.template.ServletNamespace.visitor(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter) throws javax.servlet.ServletException
        in if(custom_tweak:node_breadcrumbs:37) - <n.if.visitor.is_site_admin> - public static void nabble.naml.namespaces.BasicNamespace._if(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in nabble_html(nabble:utilities.naml:19) - <n.nabble_html> - public void nabble.view.web.template.ServletNamespace.nabble_html(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in html_impl(nabble:utilities.naml:4) - <n.html_impl>
        in html(nabble:app.naml:88) - <n.html>
        in do(nabble:utilities.naml:982) - <n.as_node_page.do/>
        in as_node_page(nabble:utilities.naml:982) - <n.as_node_page.do/> - public void nabble.view.web.template.NodeNamespace.as_node_page(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in do(nabble:utilities.naml:987) - <n.get_node_from_request_parameter.do/>
        in get_node_from_request_parameter(nabble:utilities.naml:987) - <n.get_node_from_request_parameter.do/> - public void nabble.view.web.template.ServletNamespace.get_node_from_request_parameter(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter) throws java.io.IOException,javax.servlet.ServletException,nabble.naml.namespaces.TemplateException
        in catch_exception(nabble:utilities.naml:986) - <n.catch_exception. id="get-node-block"> - public void nabble.naml.namespaces.BasicNamespace.catch_exception(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in (nabble:view_news.naml:1) - <subroutine name="view_news" requires="basic,nabble,servlet">
        in view_news(nabble:app.naml:22) - <n.view_news/>
        in case(nabble:app.naml:21) - <n.case. value="news"> - public void nabble.naml.namespaces.BasicNamespace$SwitchNamespace._case(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in switch(nabble:app.naml:2) - <n.switch. value="[n.get_node_from_parameter.type/]"> - public void nabble.naml.namespaces.BasicNamespace._switch(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in (nabble:app.naml:1) - <macro name="view_app" requires="servlet,nabble,basic">
        at nabble.view.web.template.NamlServlet.checkTweaked(NamlServlet.java:185)
        at nabble.view.web.template.NamlServlet.service(NamlServlet.java:144)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at fschmidt.util.servlet.JtpContextServlet.service2(JtpContextServlet.java:461)
        ... 38 more
Caused by: nabble.naml.compiler.TemplateRuntimeException: can't get visitor on cached page
        in visitor(nabble:dropdown.naml:327) - <n.if.visitor.is_site_admin> - public void nabble.view.web.template.ServletNamespace.visitor(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter) throws javax.servlet.ServletException
        in if(custom_tweak:node_breadcrumbs:37) - <n.if.visitor.is_site_admin> - public static void nabble.naml.namespaces.BasicNamespace._if(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in nabble_html(nabble:utilities.naml:19) - <n.nabble_html> - public void nabble.view.web.template.ServletNamespace.nabble_html(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in html_impl(nabble:utilities.naml:4) - <n.html_impl>
        in html(nabble:app.naml:88) - <n.html>
        in do(nabble:utilities.naml:982) - <n.as_node_page.do/>
        in as_node_page(nabble:utilities.naml:982) - <n.as_node_page.do/> - public void nabble.view.web.template.NodeNamespace.as_node_page(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in do(nabble:utilities.naml:987) - <n.get_node_from_request_parameter.do/>
        in get_node_from_request_parameter(nabble:utilities.naml:987) - <n.get_node_from_request_parameter.do/> - public void nabble.view.web.template.ServletNamespace.get_node_from_request_parameter(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter) throws java.io.IOException,javax.servlet.ServletException,nabble.naml.namespaces.TemplateException
        in catch_exception(nabble:utilities.naml:986) - <n.catch_exception. id="get-node-block"> - public void nabble.naml.namespaces.BasicNamespace.catch_exception(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in (nabble:view_news.naml:1) - <subroutine name="view_news" requires="basic,nabble,servlet">
        in view_news(nabble:app.naml:22) - <n.view_news/>
        in case(nabble:app.naml:21) - <n.case. value="news"> - public void nabble.naml.namespaces.BasicNamespace$SwitchNamespace._case(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.Interpreter)
        in switch(nabble:app.naml:2) - <n.switch. value="[n.get_node_from_parameter.type/]"> - public void nabble.naml.namespaces.BasicNamespace._switch(nabble.naml.compiler.IPrintWriter,nabble.naml.compiler.ScopedInterpreter)
        in (nabble:app.naml:1) - <macro name="view_app" requires="servlet,nabble,basic">
        at nabble.naml.compiler.Compiler.interpFix(Compiler.java:2007)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1636)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.BlockWrapper.toString(BlockWrapper.java:62)
        at nabble.naml.compiler.Template.stringValue(Template.java:87)
        at nabble.naml.compiler.Template.booleanValue(Template.java:103)
        at nabble.naml.compiler.InterpreterImpl.getArgAsBoolean(InterpreterImpl.java:75)
        at nabble.naml.namespaces.BasicNamespace._if(BasicNamespace.java:138)
        at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1631)
        at nabble.naml.compiler.Compiler$Chunks.run(Compiler.java:1121)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.ScopedInterpreterImpl$1.printTo(ScopedInterpreterImpl.java:25)
        at nabble.naml.compiler.BlockWrapper.toString(BlockWrapper.java:62)
        at nabble.naml.compiler.ScopedInterpreterImpl.getArgString(ScopedInterpreterImpl.java:42)
        at nabble.view.web.template.HtmlNamespace.<init>(HtmlNamespace.java:30)
        at nabble.view.web.template.ServletNamespace.nabble_html(ServletNamespace.java:208)
        at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1625)
        at nabble.naml.compiler.Compiler$Chunks.run(Compiler.java:1121)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.ScopedInterpreterImpl$1.printTo(ScopedInterpreterImpl.java:25)
        at nabble.naml.compiler.TemplatePrintWriter.print(TemplatePrintWriter.java:22)
        at nabble.view.web.template.NodeNamespace.as_node_page(NodeNamespace.java:869)
        at sun.reflect.GeneratedMethodAccessor60.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1625)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.ScopedInterpreterImpl$1.printTo(ScopedInterpreterImpl.java:25)
        at nabble.naml.compiler.TemplatePrintWriter.print(TemplatePrintWriter.java:22)
        at nabble.view.web.template.ServletNamespace.get_node_from_request_parameter(ServletNamespace.java:325)
        at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1625)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.TemplatePrintWriter.print(TemplatePrintWriter.java:22)
        at nabble.naml.namespaces.BasicNamespace.catch_exception(BasicNamespace.java:586)
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1631)
        at nabble.naml.compiler.Compiler$Chunks.run(Compiler.java:1121)
        at nabble.naml.compiler.Template.run(Template.java:61)
        at nabble.naml.compiler.Compiler$Subroutine.run(Compiler.java:1773)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.TemplatePrintWriter.print(TemplatePrintWriter.java:22)
        at nabble.naml.namespaces.BasicNamespace$SwitchNamespace._case(BasicNamespace.java:888)
        at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1631)
        at nabble.naml.compiler.Compiler$Chunks.run(Compiler.java:1121)
        at nabble.naml.compiler.BlockWrapper.printTo(BlockWrapper.java:68)
        at nabble.naml.compiler.ScopedInterpreterImpl$1.printTo(ScopedInterpreterImpl.java:25)
        at nabble.naml.compiler.TemplatePrintWriter.print(TemplatePrintWriter.java:22)
        at nabble.naml.namespaces.BasicNamespace._switch(BasicNamespace.java:859)
        at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1631)
        at nabble.naml.compiler.Template.run(Template.java:61)
        at nabble.naml.compiler.Template.run(Template.java:33)
        at nabble.modules.ModuleManager.run(ModuleManager.java:270)
        at nabble.view.web.template.NamlServlet.service(NamlServlet.java:165)
        at nabble.view.web.template.NamlServlet.service(NamlServlet.java:134)
        ... 40 more
Caused by: java.lang.RuntimeException: can't get visitor on cached page
        at nabble.view.web.template.ServletNamespace.visitorNamespace(ServletNamespace.java:73)
        at nabble.view.web.template.ServletNamespace.visitor(ServletNamespace.java:107)
        at sun.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at nabble.naml.compiler.JavaCall.invoke(JavaCall.java:26)
        at nabble.naml.compiler.Compiler$Block.invoke(Compiler.java:1557)
        at nabble.naml.compiler.Compiler$Block.run(Compiler.java:1625)
        ... 123 more

Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
In reply to this post by GregChapman
Hi Pedro,
GregChapman wrote
The good news:
That's cleared the "Edit this page" link for my test user (Groups: Anyone, Registered) and it's still there for me ().

The Bad news:
My Test user can see the "Shareholders Area" again

As Admin I'm getting an Nabble app error on clicking on the "Blog" link on the site's main menu.
The error seems to have been temporary.

It seems you have removed the hidden "Edit this page" link. I'm not concerned about that. It would just be a 'nice to have" feature.

However, I am very keen to be able to hide the "Shareholders Area" in the same way that I could if it was a sub-forum immediately below the root application. Any chance of a solution for that?

The error appears to have been temporary.
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
Where are you seeing the "Shareholders Area"?
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
I see it if I logout and then login again.

It's because when you logout you always get returned to the "root" screen (although, because of the adjustment that's been put in, the link at the top left is invisible).

When you log in again you are taken to the root page (regardless of whether the menu on the main site indicates "blog" or "forum") and that shows the "Shareholders Area" sub-forum.

I guess we do need that variable/cookie talked of earlier to ensure that when logging in you are returned to the area last visited.
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
What if I hide Shareholders Area from the root app?
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
Mmmm! Yes, that might do it!

Can you do that so I can test it for unforeseen problems.

Many Thanks!

(I'll keep an eye on the changed macros so I can advise others seeking a similar feature. I recall there have been a few over the past year.)
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

Pedro
Please, take a look now.
My test forum.
Reply | Threaded
Open this post in threaded view
|

Re: Hidden Application

GregChapman
Thanks, Pedro. The Shareholders Area does now appear to be hidden from any user who is not authorised to access it.

That seems as good as we can get until there a method for remembering where a user logged out from. However, I'll leave it there for now so you can get on with handling other requests.

However, in the long term, it would be good to ensure that people can't navigate between the "blog" and "forum" via the logout  then login technique.
Volunteer Helper - but recommending that users move off the platform!
Once the admin for GregHelp now deleted.
1234