Hello all,

The rights manager patch is done. It works fine but there are some small 
problems:

- the css does not look extraordinary because I did not have enought 
time to polish every detail; however this can be done very easy after 
the release (I will make some patches)
- there is a big problem with XWiki.XWikiGroups Template, if there is no 
object in it, it will not display a newly created group; currenlty 
Sergiu and I put an empty XWiki.XWikiGroup object in the template but 
there are problems with Thomas methods, who work fine in general, except 
for this matter; so I really think we should revise this problem(right 
now in Groups and Rights pages, the XWiki.XWikiGroupTemplate is also 
displayed...I think maybe with something like obj.name <> 
"XWiki.XWikiGroupsTemplate" in the hsql query will work....Thomas 
already knows this problem; also there are a couple of things to 
optimize in the queries)
- there are some improvements that can be done for the js code (right 
now I use the lightbox that already existed and it does a refresh when 
adding a new user/group; it is possible to eliminate this from the js 
code if I modify the lightbox)
- I did not make the final test for a multiwiki environment but I have 
done several tests and seemed to work without problems; I will test 
though asap.

That's all about now.
Thanks,
Evelina


Evelyne wrote:
> Hello all,
>
> I am very sorry about the delay I caused to the release of XE 1.2.
> The new Rights Management interface is almost ready. It includes the 
> following features:
> 1. Users management
> 2. Groups management
> 3. Rights management
>
> The things that I already implemented:
> 1. For Users management:
>
> - currently in xwiki all the users are displayed all at once in 
> Administration > Users & Groups as a long list of links to the users 
> profile pages; in order to provide a real-time management of the users 
> I used a table interface in which users are displayed dynamically (the 
> users objects are loaded with ajax, as the administrator scrolls down 
> in the table); the nice feature about this is that if the admin 
> scrolls down at the bottom of the table, only the last users 
> (alphabetically taken by the username) will be loaded and so on... the 
> number of users to display at once can be modified ( I am thinking to 
> add this option in Preferences, WDYT? )
> -  the table currently display 4 columns: username  (link to that user 
> profile page) , first name, last name and a management column with 2 
> buttons (edit and delete)
> - also, at the moment, i have implemented dynamic filters (filter as 
> you type) for username, last name, first name (separately or all) and 
> there is a select box with 3 options to dynamically display Local 
> users, Global users (from the main wiki in a multiwiki environement) 
> or Both (maybe this should also be a setting in the preferences? WDYT?)
> - I am planning for the future to add a dynamic sorting algorithm to 
> the table (currently users are sorted by default from the api, 
> alphabetically, ascending for all the 3 columns) but this will demand 
> more time to develop
> - right now i have implemented the deletion of a user (when the delete 
> button next to an user is pressed, the user's document will be deleted 
> with ajax)
> - the edit button (currently half-implemented) will open an ajax 
> lightbox that will display the inline editing of that user's profile 
> and the save will also be done dynamically)
> - also, i already made the script to add a new user (register and add 
> it in the table; the table will remain sorted and display the location 
> in it where the user was added) but i have to display a button that 
> will trigger the lightbox; the lightbox will contain the register form 
> for a new user;
> - for the global users, the table will provide only a view, without 
> editing and delete buttons (because a global user cannot be deleted or 
> edited from a local wiki)
> - also for the future (the velocity code already implemented) I am 
> thinking to add another button next to the user to automatically 
> display, in a nice tooltip, all the groups the user is member of (and 
> with a link to the each group - WDYT?)
>
> 2. For Groups management:
>
> - the interface uses a user-like ajax table, with the difference that 
> for groups i display only the groupname (link), the number of members 
> in that group and the manage column;
> - the edit button will also open the lightbox and allow to view all 
> the users in that group, paginated with javascript ( i wanted to use 
> the same ajax table to load all the users in the group but currently 
> the api does not allow that, so i have to take all the objects " 
> XWiki.XWikiGroups" and make a js pagination of the table);
> - also, currently a group can contain XWiki.XWikiGroups objects, which 
> have only a field called Member - a user name ( or a usernames list? i 
> am using to add one member at the time); to add a subgroup in a group, 
> the only possible way right now is to add all the users in the 
> subgroup in the group, being careful not to duplicate the users; this 
> is possible because in the editing mode for a group, besides the table 
> that contains all the members of that group, each with a delete button 
> next to it, I have 2 inputs with ajax suggest: one used to add only 
> one user to the group and the other one used to add another group to 
> the current group -> this will be done, as I said, by adding all the 
> users from a group to another (I've spoken with Sergiu and Thomas and 
> I don't know another way to do that right now because there is no 
> difference in a XWiki.XWikiGroups object to tell which member is a 
> group and which is a user - maybe in the future WDYT?)
>
> 3. Rights management:
>
> - the rights management interface is table-based as specified on the 
> Idea ( 
> http://www.xwiki.org/xwiki/bin/view/Design/ImproveRightsManagement); 
> the administrator can select to see the rights for users or groups, 
> local or global or both.
> - there is a column with the username/groupname and link to the 
> profile and the columns for rights: view, commend, edit, delete, admin 
> (only at global and space level), programming (global level, only main 
> wiki) , register (only global level).
> - in the table there are displayed all the users or groups, taken with 
> ajax, and for each right there is a 3-state checkbox: by default, if 
> the user has no right set for the current level (document, space or 
> global entry) the checkboxes are empty; one click and the respective 
> right is allowed, 2 clicks and the right is deny (is circular);
> - there are buttons to save, revert or clear all the rights (removes 
> all the rights entry for that user or group) - all dynamically, all 
> already implemented and working
> - what i did not implemented yet is this part:
>
> "Visual understanding of rights inheritance (rights from the upper 
> level replace or not at the current level); The interface should show 
> a column "greyed" if no rights are set for this column (it means 
> rights are inheritated). We should see the inheritated rights checked 
> (we need an API to find an inheritated right since it does not exist 
> now). At the global level we heritate rights from the default (always 
> authenticate in view, always authenticate in edit, admins are 
> heritated from global wiki in multiwiki mode or are not heritated)When 
> you ungrey the column then we can start from the heritated rights. If 
> you grey again the column no rights should be saved for this column."
>
> I did not implement that because i don't know how to take the 
> inherited rights for a user/group. As for the interface part, this is 
> very simple, i can have a 4-state checkbox, with the greyed state 
> first, but I have to be able to take in velocity the inherited rights. 
> ( I need help to understand how to do that )
> - also I have not implemented yet the "optional admin panel can give 
> quick acces to admin actions (global rights, space rights, user 
> management, groups management"
> , but i can use the same lightbox with some links for this matter or a 
> xwiki panel (WDYT?)
>
> Currently, for the non-js users the old interface will be enabled. 
> Should I make the old interface reachable no matter if the user has or 
> no js activated? Like an option in the Preferences maybe? WDYT?
>
> So, I would love to show you some screenshots or link but tonight I am 
> afraid it won't be possible. Reasons: I have transferred my work on 
> the laptop I will use at work because I needed to reinstall the system 
> on my personal laptop and I don't have the necessary software to run 
> the project yet (eclipse, maven). Tomorrow morning I will have a 
> server up and running. I also make a first patch tomorrow and put it 
> on Jira. By Monday I will implement the add button, the lightbox 
> display for registering a user and i will make the difference between 
> space admins and global admis (as Sergiu told me, is a matter of a 
> line or two in velocity code in the interface files and Thomas made 
> methods for that in the api); also if it is urgent, the panel with the 
> links to administration.
>
> So, that's all right now. I made a mistake because I should have 
> written more often on the devs and ask for guidance but as I am a 
> begginer and also have a limited time to work, I still have to learn 
> to be part of a community. I am really sorry for the delay I caused. 
> It won't happen again :)
>
> Thanks,
>
> Evelina
>
>
>
>
>
>

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to