H everyone,
The new rights management system interface made by Evelina is ready
except for some minor polishing. I committed this today on svn server.
It's the only thing that was needed to release XWiki Platform 1.1.2
and XE 1.1.2.
As stability is critical for 1.1 branch it would be great if most
peoples here could test it before release (ideally planned for
tomorrow evening).
Thanks,
--
Thomas Mortagne
Hi,
There have been lots of TeamCity errors recently on the XE trunk
build. This was caused by the fact that the Platform Web module build
definition in TC was wrongly pointing to the old SVN mirror (when we
were using ObjectWeb's SVN). It has not been updated by error.
I have now updated it so the build should work again.
However I've noticed some other errors were introduced in the build so
we'll probably see some TC emails shortly. But these are REAL errors
that we need to fix ASAP :)
Thanks and sorry on behalf of the XWiki Infra Team
-Vincent
Hi,
is possible in xwiki to use hibernate named queries? If so, how?
Can I call the method searchDocuments and query name pass as parameter?
Thanks.
Honza
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
Hi everybody,
I am not able to download the source code from that pom.xml file.
Can anybody please tell me what is the other way to download the complete source code for xwiki.
Thanks,
ANUJ SHARMA.
---------------------------------
Now you can chat without downloading messenger. Click here to know how.
Hi all,
My status about rights management: ready and working :)
There are 2 small problems:
1. currently I tested with 10.000 random generate users and it works
slowly because I need some new methods in the RM API to count the number
of returned rows (because I currently used something like:
#set( $users = $rm.getAllMatchedGlobalUsers( $filterMap, $limit, $off,
$orderList ) )
#set( $countUsers = $rm.getAllMatchedGlobalUsers( $filterMap ).size() )
so for count I just take ALL the users from the database and then apply
size() which is killing, I know :P )
- so, Thomas, I will need the following methods:
getAllMatchedLocalGroupsCount(filters) or
countAllMatchedLocalGroups(filters) (to keep the name from the other
methods)
getAllMatchedGlobalGroupsCount(filters)
getAllMatchedLocalUsersCount(filters)
getAllMatchedGlobalUsersCount(filters)
getAllMatchedUsersCount(filters)
getAllMatchedGroupsCount(filters)
getAllMembersNamesForGroup(name)
getAllGroupsForMember(name)
(...without the nb, start parameters)
I then tested with the count put manually and it worked extremely well
(400 ms for 10.000 users this including all: database query, transfer,
javascript and dom processing - this on my personal laptop which has
limited capabilities :D ; like it is right now (with .size() ) it would
be 19 sec for 10.000! so a lot more :D ) so the count will improve the
ajax loading very much.
2. I need the suggest patch applyed :D I will make the patch for 1.1 (I
already apply it on the core and is working fine ) but someone has to
commit it ( I done it for GSOC for trunks 1.2)
I just have to put some css to make it look prettier (some images and
some alignment, nothing complicated :) )
So the lightbox is working fine, the rights are working fine, the
loading will be quickly if I have this methods....And that's all for now
because my mail is already long :))
Thanks.
Evelina
Hello all,
I just returned from classes. Vincent, for the first question: I will
change Thomas new methods, test them, put the css and make the patch today.
For the rest of the questions Sergiu is going to answer them.
Thanks,
Evelina
Hi guys,
This is my first post, so I am sorry if I am posting it to the wrong email list.
I am currently working on a PhD at the University of Western Australia and am interested in using a Wiki to manage all of my references/publications. I have used Confluence before, however I have decided to switch to XWiki because it's open source and I can make the changes I want (and contribute them back to the group).
For a bit of background I am currently a Senior Software Engineer for a software company in Perth Western Australia, and I have had experience using Hibernate, Velocity, Struts and some JEE architectural work.
What I plan to do is build two applications/plugins that will run inside XWiki with some interaction between them. I want to create a Class and associated editors for storing/retrieving all of my citations (in BibTeX format). Once I have done that I would also like to create an editor that allows me to create papers in LaTeX format and render them using the LaTeX -> XHTML converter, allowing me to work on my papers from home, work or uni.
To get started I have a few questions, I will start with just the one and I expect to be asking more as time goes on :-)
1. I have used the FAQ tutorial to create a new "Class" for rendering the FAQ pages however my BibTeX pages need a bit more structure than one class. Basically I expect two objects to be persisted in the database, a BibTeX header and an object that represents the type (in a map I assume). Each entry type (paper, confrence proceeding, book, URL etc.) has different fields that are mandatory and are able to be set. I imagine I would have a simple Interface called BibTexData that is associated with a BibTexEntry, and put the correct version in depending on what it is. It is feasable that I want to change the "type" after the page is created (as most decent BibTeX database applications allow me to do). How do I design this using the class editor wizard, or am I better off creating this structure manually in the hibernate mappings and code?
Cheers,
Aidan (aidos)
Hi,
The XE 1.2M2 release was supposed to happen today. However I'd like
to propose postponing it because:
1) It doesn't have many changes from 1.2M1 right now
2) I'm just back from the US and still jetlagged. In addition I'll be
busy on preparing Slides for a XWiki talk I'll be giving at the
Valtech Days + I'm writing an article about XWiki for TSS
3) We have some nice features coming up and almost ready that we can
include in 1.2M2:
- new rights management UI
- watchlist + email notification feature
- scheduler plugin
I thus propose to postpone it to next week (Monday the 22nd).
Here's my +1
Thanks
-Vincent