* [gentoo-soc] Okupy - Report #3
@ 2011-06-30 4:39 Theo Chatzimichos
2011-06-30 13:15 ` Donnie Berkholz
0 siblings, 1 reply; 2+ messages in thread
From: Theo Chatzimichos @ 2011-06-30 4:39 UTC (permalink / raw
To: gentoo-soc
[-- Attachment #1: Type: text/plain, Size: 4738 bytes --]
Quick summary:
I'm writing a CMS for the Gentoo website, that will offer an LDAP web
interface, plus it will replace Gorg and provide Beacon as WYSIWYG editor to
edit the XML files.
The past two weeks I've finished the LDAP bits, plus I've added some more
features mostly needed for development purposes. In the settings files, the
administrator can provide a bunch of variables:
- the OU(s) the users are stored (there is support for multiple OUs, for
example to separate users from developers with ou=users and ou=developers,
while keeping unique usernames)
- the credentials for the anon user (minimal privileged user to perform LDAP
queries in case the anonymous search is disabled, both cases are covered in
the app)
- credentials of the admin user (needed mostly for user creation), the
objectClasses for new users, the base attribute to search for users (uid and
cn are the most common)
- a map with user profile attributes (Django has only
username/password/email/real name in its base profile, it is easily extendable
though by specifying a connection between user profile fields and LDAP
attributes)
- a map with LDAP and ACP groups (for example, is_infra, is_devrel etc,
depending on the LDAP permissions the user is able to view or touch other
user's data)
The login system had to change though. Robin wanted mail logins instead of
username logins. This needed a lot of changes, since in LDAP mail is a multi-
valued attribute, and in Django is single-valued field. I created an all_mails
field in user profile instead, that has all the mails, but the user has to
verify about them first. In initial registration, the user's mail is stored in
a DB table, along with a 30char string, and a mail is sent to the user which
contains the same string in the form of a URL. The system checks if those two
match, and if they do, it removes the entry from that table and moves the mail
to the user's LDAP mail attribute (and in the all_mails field in the DB, if
applicable). The same procedure is followed when the user wants to add a new
email to his account, for which he has to verify before getting it in the
list. Afterwards, the user can log in with any of those emails he has verified.
For password recovery, the user fills in the mail he wants to use for that
session.
The user profile is extendable, if other people want to use the LDAP frontend.
For now there is a GentooProfile class that extends the UserProfile class, that
has gentoo-specific fields based on the LDAP attributes Gentoo uses, plus the
custom gentoo LDAP schema.
User settings are available, under accounts/$USER subURL. The system checks if
the URL maps to the user currently logged in, or another user in the LDAP
server, then checks if the user is in the DB, migrates it if not, and shows
the fields according to the logged in user's permissions. Edit settings is also
available and works with the same logic.
I've also added a lot of docstrings there, and started messing around with
sphinx.
The logging system is improved as well. The errors are printed in console if
the project is run with Django's runserver for development purposes, and in
/var/log/messages (which is configurable, it can go to a dedicated dir easily)
for production use.
More tests were written, and the ebuild is almost complete. I've set up an
instance in one of my home servers, which will run tests automatically and
notify me for failures.
There is an addressbook available, as a replacement to userinfo.xml we
currently have. I'm going to play around with genmap as well to replace the
developer map.
Since the LDAP work is done, with only bugfixes and small improvements needed
here and there, I've started working on the front page. It will follow the
steps of the one we currently have. It will be a syndication-like page,
combining the info from planet/blogs, news items written by PR team, new
packages etc. I also started working on the lxml scripts to parse our XML
documentation, and next week I'll plug in the design done in www-redesign
repo, and improve it as possible.
PS. The report was delayed, because I've been offline pretty frequent due to
multiple reasons. I had my last exams, which went good and I probably
graduated (finally!), I had to be on another city without internet for some
days, and finally, the frequent power cut in Greece (as part of the general
strikes, riots and frustration of the economic crysis here) not only kept me
offline, but also destroyed one of my drives in my desktop, and one of my home
servers completely. I learned from that though, I follow their website for
future power cuts.
--
Theo Chatzimichos | blog.tampakrap.gr
Gentoo KDE/Qt, Planet, Overlays
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [gentoo-soc] Okupy - Report #3
2011-06-30 4:39 [gentoo-soc] Okupy - Report #3 Theo Chatzimichos
@ 2011-06-30 13:15 ` Donnie Berkholz
0 siblings, 0 replies; 2+ messages in thread
From: Donnie Berkholz @ 2011-06-30 13:15 UTC (permalink / raw
To: gentoo-soc
[-- Attachment #1: Type: text/plain, Size: 2781 bytes --]
On 07:39 Thu 30 Jun , Theo Chatzimichos wrote:
> Since the LDAP work is done, with only bugfixes and small improvements
> needed here and there, I've started working on the front page. It will
> follow the steps of the one we currently have. It will be a
> syndication-like page, combining the info from planet/blogs, news
> items written by PR team, new packages etc. I also started working on
> the lxml scripts to parse our XML documentation, and next week I'll
> plug in the design done in www-redesign repo, and improve it as
> possible.
Has Matt shown you my design work yet? Times have changed since 7 years
ago when the redesign occurred, and we need to change some with them —
unless we want things to look outdated already on the day we release the
new site.
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_handbook2_header-bar.png
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_handbook.png
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_install.png
(very alpha, still WIP)
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_black.png
This probably isn't the right time to incorporate all of it, but there
are a couple of things that would be great to rework while you're at it:
1) The header bar. I've got a nice sample at
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_install.png
-- the idea is that each of those 3 choices is a drop-down menu with
more options (stuff on the top and sides of our current site).
2) A reworked sidebar that is context-sensitive. Get rid of the existing
sidebar that has way too many links, and replace it with one that's
autogenerated depending on the current location. A good example is at
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_handbook2_header-bar.png
-- note that it includes the parent, siblings (collapsed by default),
and children (page anchors).
3) Breadcrumbs just below the header bar (see
http://dev.gentoo.org/~dberkholz/gentoo_website/gentoo_landing_handbook2_header-bar.png
again).
4) If you have time, change the theming and design so the handbook (and
all other docs, etc) looks like my designs. You can ignore the big
purple-black box for the time being, or I can provide images whenever
they're needed (given a couple of days notice).
We can leave the landing page and "sub-landings" (like
gentoo_landing_install.png) for later, once I've had time to do them
properly or we decide whether they're even necessary. But if you run out
of things to do, let me know and I'll finish that work up.
--
Thanks,
Donnie
Donnie Berkholz
Admin, Summer of Code
Project lead, public relations
Blog: http://dberkholz.com
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-06-30 13:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-30 4:39 [gentoo-soc] Okupy - Report #3 Theo Chatzimichos
2011-06-30 13:15 ` Donnie Berkholz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox