Hey, Everyone, it has been a while since I wrote my last post, but during this period I’ve been working and tackling problems for implementing the authentication functionality. So the user can now successfully enter his/her EteSync account in evolution and be able to see his/her data (Address-books, Calenders and Tasks) \o/.
What have I been doing during this period?
First if you want to skip to the results and see the module in action click here 😀
In my last post I showed screenshots for contacts appearing in Evolution, and explained that the .source file was created manually and that the credentials were hard coded for retrieving a specific journal form a specific EteSync account.
After finishing this, I extended so that I can also retrieve calenders and tasks in the same manner which was quite easy as I already understood what should be done. Then I created an etesync-backend file, which generally handles the user’s collection account in evolution (retrieving/ creating /deleting) journals which are address-book or calenders .source files.
The next step was then to make a user enter his credentials, So it isn’t hard coded. In this stage I had faced some issues regarding the implementation, I asked for my mentors help. Some of the problems that I faced were I needed to create a new dialog that will appear ask the user for his credentials and retrieve the data from EteSync, this had some implementation problems for me at first. Other issues appeared while integrating had to change some pieces.
So just to sum up what have I been doing during this period:
- Extended the reading functionality to calenders and tasks.
- Added etesync-backend file which handles the creating/deleting/ retrieving journals.
- Added a Lookup file for looking up your account before adding it.
- Added a Credential promoter for taking in the user’s Encryption Password.
- Integrated the collection account authentication so that is isn’t hard coded any more.
- Also, did the same with the address-book and calender back-end.
Module in action
First you need to add your account in Evolution.
- Open Evolution and then press the little down arrow next to “New” on the top-left.
- Then Choose “Collection Account”
This the collection account lookup window
Click on “Advanced Options” to enter your local serverAfter looking up for your account press next to add itThis window will appear, right after you add your account asking for entering the Encryption Password
(username and password will be preloaded as entered before)
- OK So at this point you should’ve entered your correct credentials, now evolution will load your journals so you can see your data.
This is my Address Book journal called “Default” Showing image from Evolution and EteSync Web Client
Press on the image to show This is my Calender journal called “Default” Showing image from Evolution and EteSync Web Client
Press on the image to showThis is my Tasks journal called “Default” Showing image from Evolution and EteSync Web Client
Press on the image to show- Now I made some changes in the my contacts journal “Default” and went back to Evolution and refreshed the address book, it loaded the changes made.
This is my Address Book journal called “Default” after adding “Contact 3” Showing image from Evolution and EteSync Web Client
Press on the image to show
So as you see, there is a great progress done, but still more to be made so EteSync and Evolution users can fully use the module without issues for reading and writing there data.
What Else?
- While the reading functionality is working, it may need some small fixes for some cases and testing.
- Preparing the module to be easily used by users for testing it (some adjustments in the CMakeList files.
- Add the writing functionality for calenders, tasks and address-books.
- Adding the ability to create or delete journals from Evolution.
- Small tweaks in the UI in authentication dialog.
These are the things that I can think of now, during the progress other things might appear along the way. So, stay tuned for more posts in the future, sharing with you my progress throughout the journey 😀