I’m Mohamed Karam, A third year student at the department of computer and systems engineering at Ain Shams University, Egypt. I started writing code at high school using PHP. I have a good experience in WordPress development. I also know C++ from college which I use in problem solving (no real competitions, just for fun) and I know python and Django as well.
Watching PHP communities speak about Joomla as a better/stronger CMS always made me want to learn more about this great tool, but I didn’t have the chance/time to do so. I took the chance of GSoC to learn Joomla and to be a part of its great team.
This project is about making a Joomla! CMS extension to record actions of users , informing those who did, where did when did and what made within the CMS.
What will happen
A Super user will have access to the page in the image which contains a table of all users with search privilege that allows the superuser to search among logs.
The following list is what I and my mentors thought of to be the features implemented in the final product of this project
- Global setting to activate or disable logging (some websites looking for performance or with 1 admin do not require logging)
- Settings to self-clean logs after specific time period, e.g.: rolling log for past 90 days.
- Settings to notify administrators (via email) of specific actions (e.g.: a successful admin login generates a notification mail to a super admin, new content creation generates an email... etc.).
- View all logs via an admin screen, with a filter for date, the extension type, user account.
- View specific user action logs under the User Manager page
- General logging to include User IP, Username, User ID, Event Action, Event Location, Time/date.
- System will utilize Joomla permissions system to allow super admin to choose what groups could view this extension?
- Button to export Logs to CSV file
- If IP logging is activated, a notice should show to inform the admin that this is happening (perhaps a notice to agree to the once?)
- The super user can undo users actions from the component's dashboard
At the end of this article, I want to thank GSoC team and especially my mentors Allan Walker and Llewellyn van der Merwe for their great help during the preparation of my proposal and the community bonding period that gave me a good aspect about Joomla development and its community.
After GSoC, I intend to get involved with many parts of the Joomla project. For example: Joomla arabic documentation needs a lot of work which I will be part of. Also I’ll keep tracking issues to solve what I can solve. Also as a help for the community (myself included), I intend to build a XML autocomplete extension for Joomla manifest files for atom text editor. And of course I’d help at Joomla forums answering some questions from time to time.
You can also take a look at this github repository https://github.com/joomla-projects/gsoc16_recording-action-logs from time to time to see the progress I’ve made in my project.
Finally, I will write two more articles mentioning the progress I’ve made in the project. See you soon.