On 08/18/2009 10:23 AM, Klaus Kaempf wrote:
After thinking about it, I believe the 'base system model' can be vastly simplified.
* Klaus Kaempf
[Aug 17. 2009 15:04]: * Josef Reidinger
[Aug 17. 2009 14:35]: Yes it should be possible, but then all modules must provide unified way how to report, that it is not configured and it is often not stored anywhere.
Right. This needs to be added to all (affected) services.
Actually, there's no need to change or implement any service.
You only need two state informations
1. The last (or currently) visited step of the workflow
This belongs to the session information (cookie) of the browser. If this information is present, the workflow engine knows what to call next. If this information is not present, the workflow engine either restarts from beginning or does not start at all. To decide this, one needs:
2. If the setup workflow was finished successfully
This belongs to the backend as non-privileged information. It can be as simple as touching a file (e.g. below /etc/webyast). As long as the file does not exist, the user is forced into the basic setup workflow after login. If the file exists, the user is redirected to the controlpanel after login. This decision can be easily implemented in the webclients MainController.
The file approach also has the advantage that the backed can easily resetted to re-run the setup workflow by removing the file.
Yes, it is similar how I implemented it now except, that it remember done steps in backend and not session, so if you configure two modules and another three remain, then you can just after new login configure remaining three. I hope I have to the end of week working prototype. And then we could discuss about improvements. (I think that practical example shows more problems then theoretical discussion). -- Josef Reidinger YaST team maintainer of perl-Bootloader, YaST2-Repair, webyast modules language and time -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org