Hi,
On Thu, Jun 25, 2015 at 11:59 AM, vincent(a)massol.net <vincent(a)massol.net>
wrote:
  Hi Marius and all,
 On 25 Jun 2015 at 08:19:22, Marius Dumitru Florea (
 mariusdumitru.florea@xwiki.com(mailto:mariusdumitru.florea@xwiki.com))
 wrote:
 [snip]
  >> Q1. **NS vs ND in the UI**
 >>
 >
 >> Q1.1 The majority agreed that since the final purpose are ND, we 
 should
  >> display ND in the UI, since it
simplifies the mental model of the 
 user.
  >> This implies removing the Space concept
from the UI.
 >
 > +1
 >
 >> Q1.1.1 A consequence is hiding the 'WebHome' name in the UI.
 >
 > +1
 >
 >>
 >> Q1.2 Although the default should be ND, the question is if we want to 
give
  >> the option to display NS in the UI. This
would be implemented as an
 >> advanced and technical option. The main problem is that we might need 
 to
  >> provide UI alternatives for several
components (menus, create step, 
 etc.)
   
 > There are 2 questions actually:
 > A) Do we want to support creating non-WebHome documents from the UI? 
 
 Since we can have extensions or scripts/code that create non-WebHome
 documents, I think it would be interesting to have the ability to do so in
 the UI but only for advanced users.
 I think I’d be in favor of doing the following:
 * When the user is an advanced user, in the Add > Page UI, have a checkbox
 entitled something like “Create a page without children” and when the user
 selects it and save, a document with the name entered will be created
 instead of a space and a WebHome.
  > B) Do we display differently the WebHome
documents from the
 > non-WebHome documents in the UI? 
 I don’t think we need to display them differently, except maybe to show
 that one has children while the other doesn’t have children (terminal leaf
 vs node).
  No comments on these questions? There are two
important use cases:
 * a wiki that has custom code (Velocity/Groovy) in (non-WebHome) wiki
 pages is upgraded to 7.2+ (with nested documents)
 * an admin installs an extension with non-WebHome pages in XWiki 7.2+
 (with nested documents)
 In both cases we cannot migrate the non-WebHome pages because it will
 break the code. So they have to stay. Do we show these pages in the
 document index (livetable / tree)? 
 Yes
  Note that these are not necessarily
 technical (hidden) pages. They can be data pages created/managed by an
 application/extension (whose code expects non-WebHome documents). Do
 we display them differently than the WebHome (nested) documents? 
 I don’t think we need to display them differently. The only main place
 where we need to show a difference IMO is in the Add Page UI: when a user
 wants to create a new page under a non-WebHome document, we simply display
 a warning saying that this page is a special page that cannot have children.
 In other words in the documentation we say that there are 2 types of pages
 in XWiki:
 * Terminal pages which cannot have children. We can also explain how these
 came to be historically.
 * Normal pages that can have children.
  The
 users will ask why they can't add children to these (non-WebHome)
 pages. How do we explain this to non-technical users? 
 Indeed, see above for an idea on how to handle this.
  Moreover, since both WebHome and non-WebHome
documents must coexist,
 what happens when one hides the other. E.g. an old application has
 created (through code) some data page AppData.SomePage; an user sees
 the "AppData" document (it's not a space anymore, it's actually
 AppData.WebHome) and adds a child (nested) document with the same name
 SomePage which actually creates AppData.SomePage.WebHome under the
 hood. 
 Good point. We could add a check in the Add > Page UI to prevent this.
  Now what page does the user get when he loads the
URL
 /bin/view/AppData/SomePage ? 
 It’s up to us to decide but I guess the most logical is to get
 AppData.SomePage since otherwise there would be no way to access it from
 the UI.
  The WebHome or the non-WebHome
 (application) page? In any case, some users will not get the expected
 page. Moreover, which page should be indexed by Solr, the WebHome or
 the non-WebHome with the "same" name? If we index both then the users
 will complain they get "duplicate" results (with possible different
 highlights), and the result links will open the same document (which
 one we choose to make accessible, probably the WebHome one). 
 I agree that we should add a check to prevent the creation of such pages
 from the UI. If it’s done by script then I don’t think we should prevent it.
 
I`ve asked that same question 1 week ago [1] but put it more in the light
of a security issue, since one could perform a denial-of-service-like
attack or a phishing-like attack on a ND by "masking" it with a simple
document that would high-jack existing URLs.
Also, don`t forget that if for a user we can make the difference
unnoticeable, for devs it will make life harder, since they need to query
for 2 types of documents in their code. DB queries are even more sensitive
to this, when, for example, you want to get all the immediate children of a
document. They can be simple documents (documents in the space defined by
the) or ND (WebHomes of subspaces), not o mention the issues of
manipulating the space (path string) in order to get obtain this
information.
Thanks,
Eduard
[1]