On Thu, Apr 26, 2018 at 5:00 PM, Thomas Mortagne
<thomas.morta...@xwiki.com> wrote:
> On Thu, Apr 26, 2018 at 4:34 PM, Eduard Moraru <enygma2...@gmail.com> wrote:
>> On Thu, Apr 26, 2018 at 3:35 PM, Thomas Mortagne <thomas.morta...@xwiki.com>
>> wrote:
>>
>>> On Thu, Apr 26, 2018 at 1:45 PM, Eduard Moraru <enygma2...@gmail.com>
>>> wrote:
>>> > Hi, Thomas,
>>> >
>>> > I'm having some difficulties understanding the available types and their
>>> > intent.
>>> >
>>> >    - default: used to force the default. Edit and delete are not allowed
>>> >    and a 3-way merge is applied to the document during upgrades.
>>> >
>>> > Shouldn't the default upgrade action be "keep new", specially if edit and
>>> > delete is restricted on the page? The assumption would be that it's a
>>> code
>>> > page and any unsaved modifications (e.g. as a fork extension) should be
>>> > overridden by the new version of the extension's code.
>>>
>>> On upgrade side I much prefer to have the default being what always
>>> been the default and introduce new behavior in new types. Also think
>>> this is what we want for the majority of pages, there is stuff that
>>> you could add to a page without really thinking about it as a
>>> customization, that you will want to keep and which are not dangerous
>>> for merge (like comments, restrict access to some application, etc.).
>>>
>>
>> I do get where you are coming from. However, if you consider that "default"
>> restricts editing, you should normally not end up with unwanted stuff like
>> comments on a code page.
>
> Commenting is not an edit related action from the UI point of view and
> does not require edit right so you don't get any kind of protection
> (except if you disable comments in your page of course).
>
> Also it's more comment than you think to get comments on some

Yes I meant "it's more common", too close :)

> application home page and others not-supposed-to-be-edited entry point
> pages :)
>
>>
>> Regarding rights, that's a more realistic problem we have in the current
>> model. Until we come up with a solution that does not store rights as
>> objects inside the page, we don't have much choice.
>> However, this opens up another question: How does this (setting rights on a
>> code page that has "default" type) work with the lack of edit rights on the
>> page (i.e. you would not be able to set the rights in the first place,
>> because the page can't be edited)?
>
> Keep in mind that for spaces the right setup is associated to admin
> right/action and I don't plan to affect that right now.
>
>> Or maybe when you say "not allowed to
>> edit/delete", you simply refer to the small "warning" curtain in the UI
>> that only discourages the user to do the operation, but he can force it
>> anyway?
>
> I'm referring to what the type indicates.
>
> On actual behavior side the current plan (target 10.4) is to have the 
> following:
> * basic user: edit/delete rights are directly affected by the type setting
> * advanced user: warning
>
> Plus some configuration to change that (right level behavior for
> everyone, warning for everyone, etc.) except for superadmin which can
> always force it (with a warning by default).
>
>>
>>
>>> Simply to keep merging as safe as possible you get a string warning
>>> when going trough standard editing of those pages where you could have
>>> an impact on what constitute the hearth of what this page is supposed
>>> to do.
>>>
>>> >
>>> >    - configuration: a document containing configuration. Edit is allowed
>>> >    and the document is never upraded.
>>> >
>>> > Normally, configuration is among the only things you might actually want
>>> to
>>> > make a choice on, as someone running an upgrade. It does not make much
>>> > sense to never upgrade a configuration document, specifically when you
>>> have
>>> > just added a new feature. Thinking of package managers (i.e. apt's dpkg),
>>> > they allow specifying beforehand or even answering interactively on the
>>> > action to take (merge/new/old) for the configuration files of a package
>>> > being upgraded. Also, the general default for config files is "merge" and
>>> > not "keep old".
>>>
>>> There is different ways of seeing this. First dpkg is not really an
>>> accurate comparison IMO, I think you missed the fact that
>>> "configuration" here is for configuration data only usually, the
>>> assumptions is that the class and administration UI for example would
>>> be in a different documents so you do get new properties during
>>> upgrade. But the behavior supposedly stay the same after upgrade, i.e.
>>> it's not modified by a change in the provided default configuration
>>> (the idea being to allow the extension author to change default
>>> configuration for new install without disturbing old ones). This is
>>> exactly what happen with application that are using generated
>>> configuration page right now, one of the ideas behind this type is
>>> that you can use it instead of a (sometimes complex) configuration
>>> generation logic.
>>>
>>> But yes there is not only one kind of configuration and the point of
>>> me listing the quick types I introduced in 10.3 is also to ask for new
>>> ones to have a good coverage of various common use cases even if
>>> extension can also come with their own type too.
>>>
>>> >
>>> >    - home: a wiki home page. Edit is allowed and the document is upgraded
>>> >    only if it's not been customized.
>>> >    - demo: a document which purpose is to provide demo data. Edit and
>>> >    delete are allowed and the document is upgraded only if it's not been
>>> >    customized.
>>> >
>>> > I don't really understand the distinction between "home" and "demo".
>>> AFAICS
>>> > from the definition, "home" is not supposed to be deleted, but why would
>>> we
>>> > want to enforce such a restriction? If we are talking about wiki
>>> homepages,
>>> > we can already configure that in the wiki descriptor as "Main.WebHome" is
>>> > not really a fixed entrypoint/API.
>>>
>>> Yes in theory the wiki home page is configurable but I really doubt
>>> this actually happen much and it's not very nice to delete the wiki
>>> home page for various reasons. Now it was a quickly introduce type
>>> because I had this use case in mind but we could decide to make it a
>>> demo and rely on another system to check if the page is the configured
>>> home page before warning about it.
>>>
>>> > For application homepages, I fail to see
>>> > the need to edit them, so I believe they should use "demo" instead of
>>> > "home".
>>>
>>> Did you mean default ?
>>
>>
>> Right.
>>
>>
>>> "demo" does not make sense for application home
>>> page since you don't want to edit them as you said. Most application
>>> home pages will use default type for me.
>>>
>>> And yes those are not the target of "home" type. I did not really had
>>> any other use case in mind than Main.WebHome when I introduced it but
>>> assume other pages could be in a similar situation :)
>>>
>>> >
>>> > IMO, "Main.WebHome" should be set to "demo" since that is what it really
>>> > is. We expect the admin to edit it with his needs.
>>>
>>> I still prefer to protect the wiki home page against delete by default
>>> but not strongly enough to not be OK with your proposal if other think
>>> it's better like this.
>>>
>>> >
>>> > AFAIU, "demo" makes sense and "configuration" is mostly something that
>>> the
>>> > admin might choose, with a default of "merge".
>>> >
>>> > Thanks,
>>> > Eduard
>>>
>>> Any other type you can think of that would worth being introduced in
>>> XWiki Standard ? IMO it can even be a type that have the same behavior
>>> than another right now, the idea being that with the current
>>> architecture a component can overwrite a specific type, introduce a
>>> custom upgrade component for a specific type or that we could decide
>>> to change the way we deal with some type of document in the future for
>>> some reason (having the documents already using the right type in
>>> extensions would help a lot when that time comes :)).
>>>
>>
>> Nothing else to add. For me, the 3 types - default (code), configuration
>> and demo - should be enough for a good start.
>>
>> Thanks,
>> Eduard
>>
>>
>>>
>>> >
>>> >
>>> > On Wed, Apr 25, 2018 at 7:49 PM, Thomas Mortagne <
>>> thomas.morta...@xwiki.com>
>>> > wrote:
>>> >
>>> >> By the way this is not only about XWiki Standard. We also need to
>>> >> think about entry type in contrib extensions you know.
>>> >>
>>> >> On Mon, Apr 23, 2018 at 1:40 PM, Thomas Mortagne
>>> >> <thomas.morta...@xwiki.com> wrote:
>>> >> > As I indicated it would be better if you could send other mail to
>>> >> > discuss those pages separately (there is already one for the the
>>> >> > themes) :)
>>> >> >
>>> >> > On Mon, Apr 23, 2018 at 12:39 PM, Ecaterina Moraru (Valica)
>>> >> > <vali...@gmail.com> wrote:
>>> >> >> Dashboard.WebHome should be editable.
>>> >> >> FlamingoThemes.* should be editable in order for users to set custom
>>> >> logos.
>>> >> >> XWiki.DefaultSkin should be editable for the same logo reason.
>>> >> >>
>>> >> >> Thanks,
>>> >> >> Caty
>>> >> >>
>>> >> >> On Mon, Apr 23, 2018 at 1:27 PM, Thomas Mortagne <
>>> >> thomas.morta...@xwiki.com>
>>> >> >> wrote:
>>> >> >>
>>> >> >>> Hi devs,
>>> >> >>>
>>> >> >>> When dealing with extension pages protection we ended up with a very
>>> >> >>> visible issue: EVERYONE customize the home page so it does not make
>>> >> >>> much sense to warn every user trying to edit it that it's dangerous
>>> >> >>> and might break the extensions.
>>> >> >>>
>>> >> >>> Since it's not the only use case 10.3 introduce the concept of XAR
>>> >> >>> entry type which allow controlling a bit more edit/delete and
>>> upgrade
>>> >> >>> behavior. See http://extensions.xwiki.org/
>>> >> xwiki/bin/view/Extension/XAR+
>>> >> >>> Module+Specifications#Hpackage.xml
>>> >> >>> for more details.
>>> >> >>>
>>> >> >>> On component side it's possible to decide the default type of a page
>>> >> >>> reference (that's where "Main.WebHome" type come from currently).
>>> It's
>>> >> >>> also possible to override the upgrade behavior for a specific type
>>> or
>>> >> >>> even a specific reference for more exotic use cases.
>>> >> >>>
>>> >> >>> So it's now possible to control the type you want for a page at XAR
>>> >> >>> descriptor level. I already typed a few page, for example
>>> >> >>> "Main.WebHome" is now of type "home" which means "it's OK to edit it
>>> >> >>> and you should only upgrade it if no customization have been made".
>>> >> >>>
>>> >> >>> Cool home page is covered but we now entered a new era of endless
>>> >> >>> debates to decide of what type some page should be and what other
>>> >> >>> types to introduce :)
>>> >> >>>
>>> >> >>> We are not going to discuss all these in this mail so everyone with
>>> a
>>> >> >>> doubt should start a discussion for a standard page (or a set of
>>> >> >>> standard page which are obviously very similar like color themes).
>>> >> >>>
>>> >> >>> Currently, protected page produce a warning that you can force. The
>>> >> >>> plan in 10.4 is to keep the warning only for advanced completely
>>> >> >>> prevent basic user to modify protected pages by default and also
>>> allow
>>> >> >>> configuring all that (indicate in your profile that you don't want
>>> to
>>> >> >>> be bothered with that, override edit/delete right even for advanced
>>> >> >>> users, etc.). But before that we need to make sure basic users are
>>> >> >>> allowed to edit all the pages they are supposed to edit.
>>> >> >>>
>>> >> >>> Happy tuning :)
>>> >> >>>
>>> >> >>> --
>>> >> >>> Thomas Mortagne
>>> >> >>>
>>> >> >
>>> >> >
>>> >> >
>>> >> > --
>>> >> > Thomas Mortagne
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Thomas Mortagne
>>> >>
>>>
>>>
>>>
>>> --
>>> Thomas Mortagne
>>>
>
>
>
> --
> Thomas Mortagne



-- 
Thomas Mortagne

Reply via email to