Closes: #2074 sunil's changes: - Ensure that secret is not asked for a second time after creating admin user and logging in (this happens due to discarding of old session and creating new one). - Ensure that this logic is not applied to user using FreedomBox images who are not required to input the first wizard secret. - Change the name of the session variable for readability. Tests performed: - Without the patch, start first boot wizard on the first browser on a FreedomBox image (or run the file `base64 < /dev/urandom | head -c 16 | sed -e 's+$+\n+' > /var/lib/plinth/firstboot-wizard-secret`). Finish the welcome step with first wizard secret. Then open a second browser or from another computer visit the web interface. The first wizard secret is not asked and user can create an admin account. - Repeat with fresh image again with the patch. To mimic fresh image, one may run `sudo rm -f /var/lib/plinth/plinth.sqlite3` and `echo "password" | | sudo /freedombox/actions/users remove-user tester`. This time when a different browser other than the one that provided the first wizard secret try to access the account creation page, a redirection will occur to welcome page. Providing the first wizard secret takes the user to account creation page. - Accessing network first wizard page or internal pages on second browser also takes one back to the welcome page. - Accessing help pages from second browser requires login. - Accessing account login page from second browser is allowed. After creating the account from first browser, second browser can login and continue the wizard. - Clearing cookies in the middle of the wizard takes the user back to welcome page. - Clear cookies in the middles of the wizard. Visit the wizard, go to first boot welcome page. Provide secret and the wizard will continue where it was left off. - Clear cookies in the middles of the wizard. Visit the wizard, go to first boot welcome page. Access login page, login as admin. Then first wizard secret is not asked. First wizard can be continued. - On a fresh image, simply complete the first wizard. No change to earlier flow is noticed. First wizard secret is only asked once at the beginning. - On a fresh image, remove the file /var/lib/plinth/firstboot-wizard-secret. First wizard can be completed without the secret. [sunil: improvements to original patch by Kirill Schmidt] Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org> Tested-by: Sunil Mohan Adapa <sunil@medhas.org>
FreedomBox Service (Plinth)
The core functionality and web front-end of FreedomBox.


Description
FreedomBox is a community project to develop, design and promote personal servers running free software for private, personal communications. It is a networking appliance designed to allow interfacing with the rest of the Internet under conditions of protected privacy and data security. It hosts applications such as blog, wiki, website, social network, email, web proxy and a Tor relay, on a device that can replace your Wi-Fi router, so that your data stays with you.
This module, called FreedomBox Service and also know as Plinth, is the core functionality and web interface to the functions of the FreedomBox. It is extensible and provides various applications of FreedomBox as modules. Each module or application provides simplified user interface to control the underlying functionality. As FreedomBox can act as a wireless router, it is possible to configure networking. It also allows configuration of basic system parameters such as time zone, hostname and automatic upgrades.
You can find more information about FreedomBox Service (Plinth) on the Plinth Wiki page, the FreedomBox Wiki and the FreedomBox Manual.
Getting Started
See the INSTALL.md file for additional details and dependencies. To install run:
$ sudo python3 setup.py install
Run FreedomBox Service (Plinth) on the local system with:
$ sudo plinth
Contributing
See the HACKING file for contributing to FreedomBox Service (Plinth).
