20130722 (Monday, 22 July 2013)

ExpectedGuests, WaitingGuests, CreateClientEvent

Worked on the lino_welfare.modlib.reception module.

  • welfare.reception.ExpectedGuests and welfare.reception.WaitingGuests start to be ready.
  • New action “Appointment” (pcsw.Clients.create_event = CreateClientEvent()) for checking in visitors without appointment. This action is currently declared show_in_workflow, so it is not in the top toolbar but in the workflow buttons (Status tab).

How to mount a Samba share on a Linux client

Q: I have a server named jana on my LAN and would like to tell Shotwell to store its photos on this server and to use the same pictures from different Linux clients.

On each client (here hoppel):

luc@hoppel:~$ mkdir jana
luc@hoppel:~$ sshfs luc@jana:/smb ~/jana
luc@jana's password:

That’s all. Verify that it worked:

luc@hoppel:~$ ls jana
audio  backup  collect  fotos  screencasts  tmp  to_print  videos

Edit: that’s not yet all. How can I now automatically mount this each time I start? But in fact not really each time… e.g. not when I’m not home. This is where autofs becomes interesting:

$ sudo aptitude install autofs
[sudo] password for luc:
The following NEW packages will be installed:
  autofs autofs5{a} libgssglue1{a} libnfsidmap2{a} libtirpc1{a} nfs-common{a} rpcbind{a}
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,064 kB of archives. After unpacking 2,842 kB will be used.
Do you want to continue? [Y/n/?]

Checkin in will reassign the event

Worked on CreateClientEvent. Lino can now handle a client checkin without prior appointment.

The basic idea is to simply first create an appointment.

Let’s say that Theresia is reception clerk and the client wants to see Alicia.

Theresia opens the Detail of the Client and clicks on “Appointment”, selects Alicia as user, then OK.

Lino won’t store directly Alicia as responsible user. That’s because we have the rule: when somebody creates a calendar event for a colleague, then the colleague must first accept her responsibility for that event by clicking “Accept” in the “My assigned events” table.

But when a client is physically present and checked in, then that rule is not realistic, there will be a real-time solution. That’s why the reception clerk has the right to shortcut that responsibility.

New warning “Checkin in will reassign the event from Theresia to Alicia”

New field SiteConfig.client_calender needed because CreateClientEvent must set this, otherwise the Guest won’t get created.

Reading Belgian eID cards

Re-vamped once more an old topic (see 2013-01-05).

Most Lino-Welfare users, but especially those of the lino_welfare.modlib.reception module, need to electronically read Belgian eID cards of clients and store the data of these cards (name, birth date, picture,…) in their database.

This is currently working well thanks to Johan De Schutter’s eid-javascript-lib, which does exactly what we need: a JavaScript class “CardReader” which I can instantiate and call it’s read method.

But eid-javascript-lib is built on Middleware 3.5 and therefore causes a compatibility warning on computers with a newer MW (version 4.0. was released in January 2012). Furthermore I’m afraid that Johan won’t easily upgrade eid-javascript-lib because in the wiki of the MW I read “This 4.0 eidmw SDK will break radically with the older 2.x and 3.5 SDK API’s. (…) SDK 4.0 will not provide Java examples. Java has evolved over time and smartcard access is now provided by the JVM. Applets can do smartcard operations right in the JVM. This fact removes the need for client side middleware dependencies.”

Note that I still don’t really understand what the MW actually does: it “offers components for using the Belgian eID on your computer.”, but what does that mean concretely?

I just need an applet like the eid-javascript-lib, but one that doesn’t depend on the old Middleware.

The official eid-applet is not what we want. We don’t want authentication via eID, we just want to read the data without prior authentication. Even if some day in the future we would want our users to authenticate using the eID, then we won’t use the eid-applet to read data from clients eID cards. The reception clerk is not going to ask clients to enter a PIN of their eID card. Some excerpts from the applet dev guide confirm this: “The eID Applet will not proceed when it detects a non SSL browser session. … The eID Applet cannot be accessed from Javascript for cross-site scripting security reasons.” and then the eID Applet requires an “applet service” to run.

Should I write my own applet which accesses the smartcard directly? Johan obviously started a project like that, eid-nomw-sdk-applet, but that was in September 2012 and I have no news since then.

Other projects:

  • eid-viewer seems to be the current GUI viewer.
  • commons-eid-viewer: Next-Gen eID viewer built upon the robust commons-eid classes. Only one commit “first experiments” from June 12, 2013 Owner: .
  • commons-eid: The Commons eID Library provides a very generic library to handle the Belgian eID. The library can be used both for desktop applications as well as browser based applets.

This last one sounds interesting. But the README says:

The following is required for compiling the Commons eID software:
* Oracle Java 1.6.0_33
* Apache Maven 3.0.4
* Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy

So before continuing in this direction I’d have to learn about Maven. Okay… not feeling ready for this right now…

So it seems that the Lino users in Eupen will start to actively Johan’s eid-javascript-lib within the next months because AFAICS this library remains the only working solution.

Final sprint before release

The welfare.reception module isn’t yet perfect, but tonight we plan to release Lino-Welfare 1.1.8. See Changes in Lino Welfare.


  • The confirmation “Client X started waiting for user Y” at the end of CreateClientEvent mentions the wrong user when you use the Event Detail to click on “checkin”.
  • Maybe a direct button “Checkin” on Client which create an appointment without using the deviation via assigned_to. But also check whether the client truly doesn’t have any appointment.
  • Checkin action should check for valid eid card and issue a warning when appropriate.
  • more todo_tables