2009-05-19T00:42:57  *** grzywacz has quit IRC
2009-05-19T05:03:22  *** xorAxAx has quit IRC
2009-05-19T05:03:25  *** xorAxAx has joined #moin-dev
2009-05-19T05:42:07  *** TheSheep has joined #moin-dev
2009-05-19T10:46:28  <dreimark> moin
2009-05-19T11:25:16  <ThomasWaldmann> moin
2009-05-19T12:05:05  <ThomasWaldmann> dennda: http://moinmo.in/FeatureRequests/AclRefactoring/ItemACLs (I have separated just the item stuff from the mixed parent page)
2009-05-19T12:06:01  <dennda> looky looky
2009-05-19T12:09:04  <ThomasWaldmann> reload
2009-05-19T12:16:18  * ThomasWaldmann would really like to have this defined before coding starts. It always helps if one knows what to code. :)
2009-05-19T12:18:18  <ThomasWaldmann> dennda: maybe try to define how "read" should behave
2009-05-19T12:24:45  <ThomasWaldmann> dennda: ?
2009-05-19T12:25:02  <dennda> yeah i'm still alive :-)
2009-05-19T12:25:30  <dennda> it's just that I found IRC to be the most time wasting/consuming thing around me, so keep it closed/minimized while working
2009-05-19T12:25:41  <dennda> oh and I had an X crash
2009-05-19T12:25:46  <dennda> will take a look at it in some minutes
2009-05-19T12:27:33  <dennda> ThomasWaldmann: well I figured that storage methods that you can associate with "read" access (such as get_revision) check for the read privilege and raise an exception if the user isn't privileged
2009-05-19T12:30:10  <ThomasWaldmann> that has to be a bit more precise
2009-05-19T12:30:58  <ThomasWaldmann> e.g. like where do you get the ACL that you check from?
2009-05-19T12:31:51  <ThomasWaldmann> and how about reading metadata vs. reading data?
2009-05-19T12:35:07  <dennda> some thing I just came to think of: where are acls currently stored?
2009-05-19T12:36:10  <ThomasWaldmann> maybe you should use moin a bit more :)
2009-05-19T12:36:39  <ThomasWaldmann> (up to 1.9, the are stored on the page as #acl ...)
2009-05-19T12:36:46  <dennda> yeah I know that
2009-05-19T12:37:18  <dennda> but are they already taken from the page item? i doubt that
2009-05-19T12:39:21  <ThomasWaldmann> I don't care about what "already" happens in *-storage.
2009-05-19T12:39:36  <ThomasWaldmann> we are talking about what SHOULD happen.
2009-05-19T12:40:19  <dennda> Well they SHOULD be stored in the items metadata
2009-05-19T12:40:37  <dennda> And if that's not yet there that HAS TO BE implemented
2009-05-19T12:40:56  <dennda> And you likely want me to do that, so I care :-)
2009-05-19T12:41:06  <ThomasWaldmann> sure. 2.0-storage has clean separation between data and meta.
2009-05-19T12:41:27  <dennda> you did that already?
2009-05-19T12:41:36  <ThomasWaldmann> yes
2009-05-19T12:41:55  <dennda> great
2009-05-19T12:42:12  <ThomasWaldmann> you maybe should really have a look at that stuff now, as you will have to decide rsn what you want to use as base for your soc09 work.
2009-05-19T12:42:26  <dennda> rsn?
2009-05-19T12:42:38  <ThomasWaldmann> really soon now
2009-05-19T12:42:39  <dennda> I'll take a look at it today/tomorrow
2009-05-19T12:43:42  <ThomasWaldmann> but if you want to start with ACLs, maybe concentrate on defining behaviour
2009-05-19T12:44:04  <ThomasWaldmann> otherwise we'll waste 2 weeks just for misc. discussions
2009-05-19T12:45:10  <ThomasWaldmann> 2.0-storage just puts data and meta into separate edit fields when editing an item
2009-05-19T12:45:48  <ThomasWaldmann> and when saving, it gets them from those fields and keeps stuff separate.
2009-05-19T12:46:50  <ThomasWaldmann> so, for your thoughts about ACLs, you can just assume that you have items that have revisions and each revision has data and meta, and ACLs are in meta.
2009-05-19T12:47:37  <dennda> to make this clear
2009-05-19T12:47:43  <ThomasWaldmann> and there are 2 revisions in the game when thinking about permission checking
2009-05-19T12:47:55  <dennda> an item itself won't have acls in it's metadata
2009-05-19T12:47:57  <dennda> do you agree?
2009-05-19T12:48:47  <ThomasWaldmann> the revision X (0<=X<=n) you try to do something with (e.g. read) and the latest revision n of the item.
2009-05-19T12:49:16  <ThomasWaldmann> as long as we did not define ACL behaviour, we can not decide that
2009-05-19T12:49:29  <dennda> i'm just thinking about a definition for read
2009-05-19T12:49:30  <ThomasWaldmann> currently, there are no "item ACLs"
2009-05-19T12:50:24  <dennda> can we discuss this in mumble and transfer our results to the wiki page then?
2009-05-19T12:50:50  <ThomasWaldmann> yes
2009-05-19T12:51:26  <dennda> i've got 20 minutes left before I need to fetch something at my uni
2009-05-19T12:51:36  <dennda> if you want to start now
2009-05-19T12:53:54  <ThomasWaldmann> did you choose some server?
2009-05-19T12:54:03  <dennda> you decide
2009-05-19T12:55:09  <ThomasWaldmann> mumble://sv1.free-mumble.com:60004
2009-05-19T12:56:15  <ThomasWaldmann> hmpf, timeout
2009-05-19T12:56:25  <dimazest> moin!
2009-05-19T12:56:27  <dennda> please give me a label
2009-05-19T12:56:37  <dennda> my term doesn't make that a link
2009-05-19T12:57:12  <dennda> ThomasWaldmann: NitroServ.com Mumble 6599
2009-05-19T12:58:51  <ThomasWaldmann> connection refused, check port
2009-05-19T12:59:22  <ThomasWaldmann> put a link on MoinMoinChat
2009-05-19T13:00:00  <ThomasWaldmann> the link in line3 doesnt work anyway
2009-05-19T13:01:42  <dennda> ThomasWaldmann: Mumble-Funk Public 4
2009-05-19T13:02:40  <dennda> ThomasWaldmann: Treffpunkt 1
2009-05-19T13:03:08  <dennda> that's a subchannel of that server
2009-05-19T13:03:57  <ThomasWaldmann> could you please just do what I told?
2009-05-19T13:04:11  <ThomasWaldmann> and maybe check first if the channel is populated
2009-05-19T13:04:22  <dennda> i am in that channel alone
2009-05-19T13:04:26  <dennda> you were already on that server
2009-05-19T13:04:28  <ThomasWaldmann> url?
2009-05-19T13:04:37  <dennda> all you'd have to do is double click "Treffpunkt 1"
2009-05-19T13:04:49  <dennda> well I need to leave in a few mins anyway
2009-05-19T13:04:54  <dennda> will be back soon though
2009-05-19T13:04:58  <ThomasWaldmann> ok, forget it
2009-05-19T13:05:28  <dennda> let's do that later
2009-05-19T13:06:49  <dennda> how do you construct that link? just mumble://<server>:<port>?
2009-05-19T13:09:59  <ThomasWaldmann> i might get slightly annoyed if you waste my time instead of reading what I already told you
2009-05-19T13:10:39  <dennda> well putting a link onto the wiki page requires a) knowing how to construct such a link and b) finding a free server
2009-05-19T13:11:17  <ThomasWaldmann> but as there is already a link...
2009-05-19T13:11:53  <dennda> ...that doesn't work
2009-05-19T13:12:22  <ThomasWaldmann> the link works, but the target server does not
2009-05-19T13:13:45  <dennda> now there is a link
2009-05-19T13:15:05  <dennda> bbiab
2009-05-19T13:17:14  *** ypy has joined #moin-dev
2009-05-19T13:19:03  *** ypy has left #moin-dev
2009-05-19T14:11:53  <ThomasWaldmann> ok, we have an own mumble server now
2009-05-19T14:13:39  <ThomasWaldmann> dennda: devilsadvocate: dimazest: dreimark: waldi: xorAxAx: ^^ (the password is "moin", without the quotes)
2009-05-19T14:14:04  <dimazest> ThomasWaldmann: what is the link?
2009-05-19T14:14:20  <ThomasWaldmann> http://moinmo.in/MoinMoinChat < there is a link to click on (if you browser is configured right, it will just start mumble)
2009-05-19T14:17:05  <dimazest> grrr, it needs restart after instalation
2009-05-19T14:18:23  <ThomasWaldmann> dimazest: it is right at the top of the wiki page I gave
2009-05-19T14:19:36  <ThomasWaldmann> btw, if one stores a profile for that mumble server, it will auto-login with the stored username and password after clicking on that link
2009-05-19T14:22:42  <ThomasWaldmann> bbl
2009-05-19T14:34:01  <dreimark> ThomasWaldmann: :)
2009-05-19T14:34:27  <dreimark> hi dimazest
2009-05-19T14:36:28  <dimazest> dreimark: hi
2009-05-19T14:39:02  <dreimark> dimazest: do you have run always selective tests or a full test? Me is interested if there are other tests also failing
2009-05-19T14:39:35  <dimazest> i've run all test
2009-05-19T14:41:09  <dimazest> http://paste.pocoo.org/show/117991/ there are results
2009-05-19T14:47:53  <ThomasWaldmann> may I suggest you do not waste too much time on old and sometimes strange unit tests? as you will be refactoring and rewriting that code, you'll rewrite some of those tests anyway
2009-05-19T14:49:22  <dreimark> ThomasWaldmann: we have now a mac developer
2009-05-19T14:49:48  <ThomasWaldmann> ohreally?
2009-05-19T14:49:56  <dreimark> and we (not him) should look if we have some OS related issues now
2009-05-19T14:50:35  <ThomasWaldmann> well, we can search the bugs, but other than that, we can't know.
2009-05-19T14:50:44  <ThomasWaldmann> who is it?
2009-05-19T14:50:49  <dreimark> dimazest:
2009-05-19T14:51:46  <dreimark> so it is somethow also related to his task. And we won't as a result it not only working on mac osX
2009-05-19T14:52:11  <dreimark> ThomasWaldmann: ^
2009-05-19T14:52:35  <ThomasWaldmann> dimazest: you have a mac? great, so we get some more platform testing. :)
2009-05-19T14:53:17  <ThomasWaldmann> otoh, I guess there won't be too much issues on OS X as it is also POSIX (or -like).
2009-05-19T14:53:37  <TheSheep> wrong, there are always issues on osx :(
2009-05-19T14:53:49  <dreimark> the paste bin tells lot's of issues
2009-05-19T14:54:06  <TheSheep> btw, I have a mac too
2009-05-19T14:54:12  <TheSheep> at work
2009-05-19T14:54:21  <dreimark> and it smells ab bit that the fuid fix does not work
2009-05-19T14:54:47  <ThomasWaldmann> we already have a better fix in 2.0 :)
2009-05-19T14:55:26  <ThomasWaldmann> (at least for http caching / "cache action")
2009-05-19T14:57:26  <dreimark> AttributeError: TestGetVal instance has no attribute 'page'
2009-05-19T14:58:11  <dreimark> TheSheep: do you see the same tests failing ?
2009-05-19T15:03:21  <TheSheep> dreimark: I'm on linux atm
2009-05-19T15:03:38  <TheSheep> dreimark: can't reboot now
2009-05-19T15:06:15  * dimazest aftre reboot
2009-05-19T15:07:05  <dimazest> if threre are problems because of mac, i always can switch to my fedora box
2009-05-19T15:07:29  <dimazest> the only thing, that it is 2500 km away from me, but it should not be a problem
2009-05-19T15:08:30  <dimazest> or i can do test on fedora server too, to be shure that my code works not only on macs
2009-05-19T15:12:10  <ThomasWaldmann> dimazest: i guess we will also run your code, so that it does not get checked on linux is rather unlikely
2009-05-19T15:12:58  <ThomasWaldmann> win32 or older pythons can be a bigger problem, so you should make sure you are developing with the minimum python requirement and at least not intentionally do things that can't work on win32
2009-05-19T15:13:05  * dennda is back
2009-05-19T15:13:38  <dimazest> so, I do not want to concentrate on failing tests now, because they will be rewritten/refined
2009-05-19T15:15:00  <ThomasWaldmann> yes, maybe rather plan ahead on what you want to do in the first week, look at the bit of existing code, plan on what you want to address first, how it should behave and how you implement it
2009-05-19T15:15:20  <dimazest> ThomasWaldmann: i use 2.4, win32 trickier, since i do not know win32 glitches
2009-05-19T15:16:05  <ThomasWaldmann> in last year's repo, there is a bit of usable code you can extract. it's not that much, but still. I hope you will recognize what's crap code and what not. :D
2009-05-19T15:16:54  <ThomasWaldmann> dimazest: the python library manual is quite helpful as it lists OS support for the functions.
2009-05-19T15:17:16  <dimazest> ThomasWaldmann: i use http://hg.moinmo.in/moin/0.0/1.8-ldapgroups-mmihaljevic/file/c9a888a7bdb8/MoinMoin/datastruct/backend/config_group.py
2009-05-19T15:17:39  <dimazest> and have several questions
2009-05-19T15:18:03  <dimazest> in wikidicts.py Group is subclass of DictBase
2009-05-19T15:18:33  <dimazest> should Group classes of backend inherit from it?
2009-05-19T15:19:19  <dennda> ThomasWaldmann: thanks for putting up a server
2009-05-19T15:19:24  <dennda> ThomasWaldmann: do you have some time now?
2009-05-19T15:19:34  * dennda idles in SoC/storage
2009-05-19T15:21:12  <dimazest> dreimark: i've updated wiki page http://moinmo.in/Groups2009#Group_backends
2009-05-19T15:21:50  <dimazest> have i captured main functionalities of Group and GroupDict correctly?
2009-05-19T15:22:05  * dreimark phonecall
2009-05-19T15:26:21  <dimazest> now i need to go
2009-05-19T15:27:02  <dimazest> i'll be here in the evening, and write in more details plan for the first week
2009-05-19T15:27:22  <dimazest> and backend, Group, GroupDict implementation
2009-05-19T15:27:26  <dimazest> see you!
2009-05-19T15:30:34  <ThomasWaldmann> cu
2009-05-19T15:38:17  * dennda prepares for some swabian voice to interrupt my music at any time
2009-05-19T15:41:25  * dreimark reads
2009-05-19T15:41:48  <ThomasWaldmann> dennda: i am at work right now, maybe later
2009-05-19T15:41:54  * dreimark too
2009-05-19T15:42:48  <dennda> sure
2009-05-19T15:45:41  <dreimark> dimazest: you can also add a group to a group. this means "Check if an item is in the group" needs to check in inherited groups too
2009-05-19T15:46:17  <dreimark> it is something having a page UserGroup and on this a * AdminGroup
2009-05-19T15:46:30  <dreimark> where * AdminGroup has the memebers
2009-05-19T16:55:17  <dreimark> dimazest: may be write a table of GroupDict main tasks
2009-05-19T16:55:36  <dreimark> old || new
2009-05-19T16:55:59  <dreimark> ThomasWaldmann: can you help with caching ideas
2009-05-19T16:56:34  <dreimark> bbl
2009-05-19T17:18:14  <xorAxAx> can anybody here me in the storage channel?
2009-05-19T17:18:20  <xorAxAx> i dont hear a response
2009-05-19T17:20:55  <xorAxAx> dennda, ThomasWaldmann
2009-05-19T17:21:36  <ThomasWaldmann> xorAxAx: mom
2009-05-19T17:29:08  <xorAxAx> ThomasWaldmann: yes
2009-05-19T17:30:30  <xorAxAx> only textual communication seems hierarchic
2009-05-19T18:16:07  <dimazest> moin
2009-05-19T19:05:53  <dreimark> dimazest: do you have seen my comments?
2009-05-19T19:06:50  <dreimark> probably it is good to make a table about old Dict new set methods
2009-05-19T19:07:05  * dreimark goes shopping bbl
2009-05-19T20:45:20  <dimazest> what to use myMethod(self) or my_method(self) ?
2009-05-19T20:55:20  <ThomasWaldmann> read pep8
2009-05-19T21:26:23  <dimazest> so my_method
2009-05-19T21:26:27  <dennda> yes
2009-05-19T21:28:25  <dreimark> \o/
2009-05-19T21:29:45  * dreimark hates to read so much crap about proprietary  cms systems
2009-05-19T21:29:54  <dennda> ?
2009-05-19T21:30:14  * dreimark has to investigate cms systems currently for the company I work
2009-05-19T21:30:23  <dennda> ah
2009-05-19T21:35:04  *** devilsadvocate_ has joined #moin-dev
2009-05-19T21:35:53  *** devilsadvocate has quit IRC
2009-05-19T21:43:13  <dreimark> dimazest: you are right we should use the new item word not the old member
2009-05-19T21:45:01  <dreimark> if you think you found a better wording feel free to use it. (but renaming is not important now)
2009-05-19T21:46:16  <dimazest> ok, should we stay with existing method names?
2009-05-19T21:48:14  <ThomasWaldmann> dimazest: you do a new clean design please
2009-05-19T21:48:16  <dreimark> you can stay mostly with existing names
2009-05-19T21:48:33  <dreimark> yea and make it cleaner
2009-05-19T21:48:35  <ThomasWaldmann> if old names are ok, you can use them, if not, then not
2009-05-19T21:50:05  <dreimark> dimazest: if you look at has_member in the new code it is something like x in s only
2009-05-19T21:51:02  <dimazest> where is new code?
2009-05-19T21:51:25  <dreimark> YOUR job
2009-05-19T21:51:37  <dimazest> ok  :)
2009-05-19T21:52:11  <dreimark> you can add a column to the table how the code in draft looks like
2009-05-19T21:52:32  <dimazest> yes, it shoul be like this, but Group must take care of sub groups
2009-05-19T21:52:59  <dreimark> yes, it must be exapnded first and has a set of items then
2009-05-19T21:54:46  <dimazest> so, expand_groups gets all members (including sub groups)
2009-05-19T21:55:49  <dreimark> yes
2009-05-19T21:58:03  <dreimark> add_member of the old code is a method of Group.
2009-05-19T22:00:28  <dimazest> so i need to add expanding to the GroupManager
2009-05-19T22:00:46  <dimazest> and i think to make similar table for the Group object to describe methods
2009-05-19T22:04:23  <dreimark> yes
2009-05-19T22:04:34  <dreimark> is the __getitem__ question still opened?
2009-05-19T22:05:26  <dreimark>  http://www.diveintopython.org/object_oriented_framework/special_class_methods.html
2009-05-19T22:05:37  <dreimark> Example 5.12.
2009-05-19T22:09:48  <dimazest> is it the same to write group['Admins']
2009-05-19T22:10:03  <dimazest> and group.members('Admins')
2009-05-19T22:17:48  <dreimark> it is not the same but the output is
2009-05-19T22:21:07  *** grzywacz has joined #moin-dev
2009-05-19T22:21:10  <dimazest> do we need both of them?
2009-05-19T22:27:26  <dennda> Are ACL's currently revisioned?
2009-05-19T22:28:07  <dennda> or are they "static" for a page and are the same for all revisions of that page?
2009-05-19T22:30:06  <ThomasWaldmann> dennda: maybe think 10s and you'll find out easy answers yourself
2009-05-19T22:30:23  <dennda> Do you happen to be in a bad mood today?
2009-05-19T22:30:49  <ThomasWaldmann> no, but you are asking trivial questions and you are not new to moin
2009-05-19T22:32:36  <ThomasWaldmann> or maybe you are not asking the right questions, that could also be
2009-05-19T22:33:13  <ThomasWaldmann> as acls are stored on-page, and pages are revision, if course ACLs exist per-revision, too
2009-05-19T22:33:22  <ThomasWaldmann> +ed
2009-05-19T22:34:16  <dennda> well there's that super syntax that'd allow for extraction and overwriting the old revisions acl, so this is not too trivial a question from my point of view
2009-05-19T22:34:26  <dennda> here is what I was thinking
2009-05-19T22:34:43  <dennda> Should somebody who has no permission to read the latest revision of an item be allowed to 'see' that item? If we want that user to be able to look at older revisions he has the appropriate privilege for, he needs to 'see' it.
2009-05-19T22:34:44  <ThomasWaldmann> that doesn't mean we use the rev N revision when accessing rev N, we usually use the current ACL, except for deleted pages
2009-05-19T22:35:04  <dennda> aha
2009-05-19T22:35:15  <dennda> so it wouldn't make that much a difference if they weren't revisioned
2009-05-19T22:35:18  <ThomasWaldmann> what is super syntax?
2009-05-19T22:35:30  <dennda> well the acl syntax... not important anymore
2009-05-19T22:35:45  <dennda> What should "write denied" be based upon? The latest revision? I.e., if the user wants to commit a revision to an item, where do we check if this is allowed? It seems unintuitive to base that on the latest revisions ACL.
2009-05-19T22:35:51  <dreimark> dimazest: you don't need both. (currently I don't see a reason for both)
2009-05-19T22:36:36  <dennda> I'm actually starting to think that acls per-item are worth thinking of
2009-05-19T22:37:09  <ThomasWaldmann> dennda: why is it unintuitive to base it on latest rev?
2009-05-19T22:37:38  <dennda> ThomasWaldmann: because I a) don't see the actual benefit and b) some problems arise from that
2009-05-19T22:38:01  <dennda> I'm happy to change my views since this may be something somebody has already thought of before
2009-05-19T22:39:00  <ThomasWaldmann> well, non-revisioned (per item) acls are much easier of course
2009-05-19T22:39:15  <ThomasWaldmann> otoh, if someone changes that acl, nobody will know how it was before
2009-05-19T22:39:15  <dennda> Yes
2009-05-19T22:40:04  <dennda> and nobody will notice it changed as it is now
2009-05-19T22:40:35  <ThomasWaldmann> for 1.8, you see it in diff
2009-05-19T22:40:59  <ThomasWaldmann> for 2.0, you don't (as it just diffs data, not meta - but that could be done)
2009-05-19T22:41:01  <dennda> "as it is now" == if we did it per-item only, you won't see it (as the rest of the code is now)
2009-05-19T22:41:05  <dennda> yes
2009-05-19T22:41:11  <dennda> hm
2009-05-19T22:41:14  <dennda> what about this:
2009-05-19T22:42:26  <dennda> store acls per revision metadata but have item metadata at the same time, and with each new revision that changes the acl, the items acl is replaced by that new acl from the revision. all permission checking is then based upon the item acl (that is effectively the most recent revision acl, but we also have revisioning of acls)
2009-05-19T22:42:57  <dennda> s/but have item metadata/but have item acls/
2009-05-19T22:43:51  <ThomasWaldmann> if you do it like that, you can also just use the latest rev's acls
2009-05-19T22:44:14  <dennda> true
2009-05-19T22:44:36  <dennda> the thing is
2009-05-19T22:44:45  <dennda> say I have an item with a few revisions
2009-05-19T22:45:04  <dennda> user joe was allowed to read those revisions. then the admin adds a revision that does not allow joe to read it
2009-05-19T22:45:24  <dennda> what does joe see? no item at all? only the last n revisions he had read perms on?
2009-05-19T22:45:32  <dennda> i tend to the former
2009-05-19T22:47:22  <dreimark> for the latter the page needs to become immutable for him
2009-05-19T22:47:48  <dimazest> dreimark: i think __getitem__ is better
2009-05-19T22:48:19  <dreimark> yeah it is more pythonic
2009-05-19T22:48:24  <dimazest> good night, see yuo tomorrow
2009-05-19T22:48:27  <ThomasWaldmann> dennda: 1.8 behave like he does not see any rev
2009-05-19T22:48:28  <dimazest> *you
2009-05-19T22:48:36  <dreimark> good nicht dimazest
2009-05-19T22:48:49  <ThomasWaldmann> one can find reasons why it does not need to be that way, though
2009-05-19T22:49:35  <ThomasWaldmann> gn dimazest
2009-05-19T22:52:06  <dennda> ThomasWaldmann: care to share those reasons? :-) I agree with the way 1.8 does it, at the moment. you may convince me otherwise
2009-05-19T22:53:47  <ThomasWaldmann> if user x was able to read rev y at time z, he could make a copy
2009-05-19T22:54:05  <dennda> "fork it"
2009-05-19T22:54:20  <ThomasWaldmann> so, if you revoke read capability from user x later, he still could have a copy
2009-05-19T22:54:24  <dennda> that can be a good or a bad thing
2009-05-19T22:54:34  <ThomasWaldmann> so it is a bit pointless to not let him read rev y
2009-05-19T22:55:21  <dennda> that basically disallows hiding an item and its history completely
2009-05-19T22:55:38  <dennda> which I think is a valid usecase
2009-05-19T22:56:44  <ThomasWaldmann> history access could be just another capability
2009-05-19T22:57:12  <ThomasWaldmann> (makes sense e.g. for cms like setups and normal site visitors)
2009-05-19T22:57:19  <dennda> hm
2009-05-19T22:57:37  <dennda> I'd actually prefer as few as possible privileges
2009-05-19T22:57:45  <ThomasWaldmann> but in an intranet like setup, users should have history access
2009-05-19T22:58:07  <dennda> this may be a good candidate though
2009-05-19T22:59:13  <ThomasWaldmann> ok, so basically we are still undecided about from where we take the read acl
2009-05-19T22:59:51  <ThomasWaldmann> let's assume for now we keep the current behaviour (use latest rev's acl)
2009-05-19T23:00:03  * dennda votes for the KISS approach
2009-05-19T23:00:19  <ThomasWaldmann> for deleted pages, i think it'll get a bit easier than it was
2009-05-19T23:00:23  <dennda> fair enough
2009-05-19T23:00:40  <ThomasWaldmann> because deleted is just a flag, but still has full meta including acls
2009-05-19T23:00:43  <dennda> actually I was thinking that storing an empty body is sufficient
2009-05-19T23:01:00  <ThomasWaldmann> (for 1.8, it used acl from last non-deleted rev)
2009-05-19T23:01:01  <dennda> but ok, that's another thing
2009-05-19T23:02:13  <ThomasWaldmann> in 2.0-storage, it currently auto-deletes when saving empty data
2009-05-19T23:02:19  <dennda> for read we still have to decide what joe should be able to see
2009-05-19T23:02:44  <dennda> assuming we always take the last non-deleted revision
2009-05-19T23:03:00  <ThomasWaldmann> having some flag is maybe not too bad, because otherwise you'ld have to check data size just to find out whether it is deleted.
2009-05-19T23:03:27  <ThomasWaldmann> no, we always take the latest rev, even if deleted
2009-05-19T23:03:33  <dennda> additionally?
2009-05-19T23:03:49  <ThomasWaldmann> because it still has acls (that's different from 1.8)
2009-05-19T23:04:47  <dennda> a DELETED flag won't be equivalent to an empty body, imho
2009-05-19T23:04:58  <dennda> ah
2009-05-19T23:05:06  <dennda> you said it auto-deletes in 2.0-storage
2009-05-19T23:05:10  <dennda> ok then it's equivalent
2009-05-19T23:05:33  <dennda> because otherwise one would be able to store an empty body (not hitting the delete button) and change the acl
2009-05-19T23:07:21  <ThomasWaldmann> btw, use latest rev would also make it consistent for write
2009-05-19T23:08:49  <dennda> it doesn't make any sense to base that on anything other than the lastest revs acl or the items acl, imho (is that what you mean?)
2009-05-19T23:09:14  <dennda> because old revisions can't be changed anyway, even if that revisions acl contains the "write allowed" permission
2009-05-19T23:10:51  <ThomasWaldmann> yes, for write nothing else makes sense
2009-05-19T23:13:52  <ThomasWaldmann> btw, if deleted stays like it is (storing empty data / deleted flag), efficiency of determination of deleted status is important
2009-05-19T23:14:18  <ThomasWaldmann> because it is checked for every link when it gets rendered
2009-05-19T23:16:44  <dennda> because the color of the link depends on that?
2009-05-19T23:16:53  <dennda> existent / non-existent page?
2009-05-19T23:18:55  <ThomasWaldmann> yes
2009-05-19T23:19:18  <dennda> hm
2009-05-19T23:19:19  <ThomasWaldmann> we could render more efficiently btw, if we did that trashbin deleted implementation
2009-05-19T23:19:23  <dennda> maybe a flag on the item?
2009-05-19T23:19:56  <ThomasWaldmann> because then we would just look at whether an item exists, not at metadata
2009-05-19T23:20:30  <dennda> hm
2009-05-19T23:20:37  <dennda> i see that's an advantage of that approach
2009-05-19T23:21:11  <dennda> and being able to store all trash on another backend (although I don't know how useful it is)
2009-05-19T23:22:49  <ThomasWaldmann> it would also solve the "why can't i rename x to y" problem when y is a deleted item
2009-05-19T23:23:06  <dennda> indeed
2009-05-19T23:23:42  <ThomasWaldmann> otoh, if a page has same name as some other deleted page, one could also say that their histories should get merged
2009-05-19T23:24:04  <dennda> although that only postpones the problem
2009-05-19T23:24:10  <ThomasWaldmann> because if it has the same name, it is about the same topic...
2009-05-19T23:24:22  <ThomasWaldmann> hm?
2009-05-19T23:24:28  <dennda> what if somebody wants to undelete such a page while another page with the same name as the deleted page was added?
2009-05-19T23:24:58  <dennda> i strongly disagree with the merging thing
2009-05-19T23:25:11  <ThomasWaldmann> yeah. it would have to tell the it either is not supported or ask whether one wants to merge
2009-05-19T23:25:31  <ThomasWaldmann> why?
2009-05-19T23:26:02  <dennda> TimMueller doesn't necessarily want another tim muellers page be merged into his
2009-05-19T23:26:18  <dennda> or other words, especially "teekesselchen"
2009-05-19T23:26:45  <ThomasWaldmann> yes, it likely depends
2009-05-19T23:27:27  <dennda> so unless there's some really good usecase for that, i'd rather not do the merging thing. but that is not the core problem anyway
2009-05-19T23:28:30  * dreimark migrating needs to be done for all revisions for 2.0
2009-05-19T23:30:34  <ThomasWaldmann> dennda: delete/undelete could be almost like rename
2009-05-19T23:30:59  <ThomasWaldmann> except that delete autocreates a unique target name in Trash/* namespace,
2009-05-19T23:31:27  <ThomasWaldmann> and undelete would read target name from metadata (and check whether that would work)
2009-05-19T23:31:38  <ThomasWaldmann> (or just try)
2009-05-19T23:31:45  <dennda> tbh that unique name mapping and renaming when undeleting and blahblah sounds a bit complex
2009-05-19T23:32:08  <dennda> need to give it further thought though
2009-05-19T23:32:09  <ThomasWaldmann> not really
2009-05-19T23:32:41  <dennda> well, it would at the very least require that namespace thing be finished first
2009-05-19T23:33:27  <ThomasWaldmann> router?
2009-05-19T23:33:35  <dennda> yup
2009-05-19T23:33:37  <ThomasWaldmann> no
2009-05-19T23:34:03  <ThomasWaldmann> it just needs a reserved toplevel name, like $$TRASH$$
2009-05-19T23:34:34  <dennda> for now that will work
2009-05-19T23:34:47  <dennda> for a long term solution it sounds ugly
2009-05-19T23:34:53  <ThomasWaldmann> and some trash action to view the trash and do stuff with trash
2009-05-19T23:35:28  <ThomasWaldmann> nice thing: item list would not need to open every item's metadata to look whether it is deleted
2009-05-19T23:36:25  <dennda> you already worked that out
2009-05-19T23:36:40  <dennda> I don't know how much that adds to efficiency
2009-05-19T23:37:59  <ThomasWaldmann> ok, rename
2009-05-19T23:38:09  <ThomasWaldmann> or move
2009-05-19T23:38:53  <dennda> as in "next on our agenda"?
2009-05-19T23:39:06  <ThomasWaldmann> yes
2009-05-19T23:39:16  <dennda> rename sounds rather simple
2009-05-19T23:39:27  <ThomasWaldmann> rename exists on storage api level
2009-05-19T23:39:31  <dennda> yes
2009-05-19T23:39:36  <dennda> that's not exactly the same though
2009-05-19T23:39:56  <ThomasWaldmann> a slight problem i had with it, is "where to put the rename metadata"
2009-05-19T23:40:18  <ThomasWaldmann> i just create a new revision just to store the rename comment and the original itemname
2009-05-19T23:40:48  <dennda> well
2009-05-19T23:41:14  <dennda> rename might as well be: create new item, copy every rev *you can read* to the new item, delete the old item
2009-05-19T23:41:27  <ThomasWaldmann> (that's a general metadata change problem, you always have to store new data also, duplicating stuff)
2009-05-19T23:41:59  <dreimark> can we link to data
2009-05-19T23:42:06  <dreimark> is it a real copy in a database?
2009-05-19T23:42:39  <ThomasWaldmann> dennda: that would leave the complete item at the old place, just in deleted state
2009-05-19T23:42:41  <dennda> that very much depends on backend implementation
2009-05-19T23:43:04  <dennda> true
2009-05-19T23:43:06  <ThomasWaldmann> we even have another option:
2009-05-19T23:43:34  <ThomasWaldmann> leave item at old place, in deleted state and have the latest rev only copied to the new place
2009-05-19T23:43:44  <dennda> if we introduce a "rename" privilege you may be able to rename an item you can't read all revisions of. do we want that?
2009-05-19T23:43:51  <ThomasWaldmann> including a backpointer in metadata
2009-05-19T23:44:00  <dennda> that sounds rather backward, tbh
2009-05-19T23:44:31  <ThomasWaldmann> yes, if it was just a mistyped item name, it creates unnecessary crap
2009-05-19T23:44:57  <ThomasWaldmann> but isn't that exactly what mercurial does?
2009-05-19T23:45:10  <dennda> no idea
2009-05-19T23:45:27  <dennda> i just see a more difficult implementation for that for no benefit
2009-05-19T23:48:41  <ThomasWaldmann> btw, that page has 2 open questions
2009-05-19T23:48:51  <ThomasWaldmann> (the acl refactor page)
2009-05-19T23:49:17  <ThomasWaldmann> nukerevision, nukeitem - we don't have that yet, right?
2009-05-19T23:49:28  <dennda> that is correct
2009-05-19T23:50:16  <ThomasWaldmann> so rename is half-way doing something that we can't do using the storage api
2009-05-19T23:50:47  <dennda> hm?
2009-05-19T23:50:51  <dennda> (sorry it's late already)
2009-05-19T23:51:36  <ThomasWaldmann> rename = nuke source, have a copy at destination
2009-05-19T23:51:57  <dennda> ah
2009-05-19T23:52:01  <dennda> i see
2009-05-19T23:52:17  <dennda> well that depends on what we define as "rename"
2009-05-19T23:52:42  <dennda> we might just as well pass that rename command down to the storage api
2009-05-19T23:53:47  <dennda> that'd certainly be the easiest way to go
2009-05-19T23:55:53  <ThomasWaldmann> so, the question is what acl is checked for rename
2009-05-19T23:56:34  <dennda> for that we probably need a rename privilege
2009-05-19T23:57:14  *** grzywacz has quit IRC
2009-05-19T23:57:37  <ThomasWaldmann> otoh, if someone is able to create foobar, shouldn't he be also able to rename to fubar?
2009-05-19T23:58:48  <ThomasWaldmann> may read src, may create target, may write target?
2009-05-19T23:59:12  <dennda> rename could be "if able to write to foobar and able to write to fubar, he has rename privilege automatically" (that is, not introducing a real new privilege but reusing a combination of already existing ones)
2009-05-19T23:59:36  <dennda> did you just suggest what i just said?
2009-05-19T23:59:53  <ThomasWaldmann> almost. yes, write to source makes more sense.

MoinMoin: MoinMoinChat/Logs/moin-dev/2009-05-19 (last edited 2009-05-18 22:45:01 by IrcLogImporter)