This is the update of J!Mint for the 1st phase of GSoC 2009. And I'm happy to release the first beta version of the J!Mint integrated user management including:

  1. Joomla admin component to manage users.
  2. Joomla user plugin to handle communication with the Magento site.
  3. Joomla auth plugin to let users login to Joomla using their old passwords from Magento
  4. Magento user module mainly to provide necessary APIs to handle communication with Joomla site.

- J!Mint now just supports Joomla 1.5.x as both Ian Mclennan and I agree that it'd not be very wise to jump through J! 1.6 com_users with new ACLs right now. It's gonna take a while for J! 1.6 to get really stable, and we can definitely port this solution to J! 1.6 by then.

- Again, the communication between Joomla vs Magento sites is done via Soap, kinda for better smell. :D

SSO plugin not yet integrated into this first release version of J!Mint.

Now come the 'see and touch' functionalities:

1. Control Panel

J!Mint - Control Panel

This control panel shows the overview of J!Mint user management component including:

  1. Joomla Stats: number of Groups, number of Users per group, and the total number of users on this Joomla site.
  2. Magento Stats: number of Groups, number of Users per group, and the total number of users on the Magento site.
  3. Cache Settings: Soap communication is expensive, it's a must to cache data for faster performance. By default, Magento data are cached in Joomla database.
  4. Last Reload: the last time the cache was cleared and Magento data was reloaded to Joomla database. (re-cached)
  5. Sync Status:
    1. Number of Magento users have been synchronized on Joomla.
    2. Last synchronization time.
    3. Lock: shows if the synchronization feature is currently being used by another user as only one backend user is allowed to access Sync feature at a time.
  6. Reload button: currently auto cache is disabled. So the admin has to manually click on 'Reload' to reload Magento data to Joomla db.

 

2. User Synchronization

As the name says, this section allows the admin user to one way synchronize Magento user data --> Joomla. Or basically, we bring selected portions of Magento user data, and store them in Joomla db.

  1. Group Mappings
    1. The sync is done with respect to Magento user groups. According to the above figure, all users in General group would be stored as Registered users on Joomla, StreetSide users would become Author users, and all Administrators would still have their super roles as Super Admin on Joomla.
    2. The tick icons don't do anything but make the selected options more visible reducing the chance of making wrong selections.
  2. Sync Settings: give more flexible options to the sync process.
    1. Reset passwords: Yes - passwords could be reset on both Joomla and Magento sites after the sync, or if No, the passwords on Magento will be used on-the-fly on Joomla right after sync.
    2. Sync this user: No - basically, we don't want to sync the current user as if this is the only admin user, and anything bad happens could lock the user out of the system.
    3. Sync Magento inactive user: backend users on Magento have the attribute of 'inactive' resembling the 'block' on Joomla. Yes - to sync all users even inactive ones on Magento.
    4. Allow New User Creation: No - only sync those users already created on Joomla, having the same username as those on Magento. Yes - if a Magento user doesn't exist yet on Joomla, create a new one with the same data.
    5. New User Activation: this is the same feature as that of Joomla com_users, only applied to new users created during the sync process.
  3. Sync Logs: after each sync, the log is stored on data.. so the admin user can always see what has been done in the last sync.
  4. Last Sync: just the time of last sync for records.
  5. Progress Bar: Not yet implemented  If the number of users on Magento goes like up to 100 users.. the sync process would take quite long and the progress bar is definitely needed. It's supposed to be Ajax-based.

3. User Manager

This is basically the com_users of Joomla with several new attributes and features added to better manage 'Joomla-Magento-hybrid' users.

  1. Lock - Checked out: this is the same as the lock feature on com_articles. However, it's not yet implemented in Joomla 1.5.x so I added this.
  2. Filters: beside the Joomla group filter, we have those for
    1. Magento Groups : filter users according to the Magento group attribute. Similar to that of Joomla.
    2. Magento websites: as Magento supports multiple front-end website, so each customer is assigned to a website.
  3. Magento Group: the additional attribute showing a user currently belongs to which Joomla and Magento groups.
  4. New / Edit / Logout : work the same way as usual and have direct corresponding effects on the Magento site.
  5. Delete : just deletes users on Joomla. Deleting users on Magento is disabled for testing purposes. (So we can always sync those on Magento back on to Joomla)

 

4. Create a New User

Same layout as the regular one, with additional fields for Magento.

  1. Magento Settings: additional fields for Magento..
  2. User Type: based on the user type selected, the corresponding available fields will be displayed. Note: Magento customers use the Email as the Username. So there is no username for Customer users.

5. Edit an User

The same as the layout for Adding a New User, but this is the one for a Customer user.

6. Demo

Login:

  • Username: demo
  • Password: demo

Joomla admin: http://hateit.net/joomla12/administrator/index.php

Magento admin: http://www.iamtotti.com/server/shop/index.php/admin/

 

7. Code Release

Version 0.1 contains the following files:

- Joomla extensions : on Joomla 1.5.12

  1. com_jmint_v0.1.zip
  2. plg_user_jmint_v0.1.zip
  3. plg_auth_jmint_v0.1.zip

- Magento extensions: on Magento 1.3.1

  1. magento_jmint_v0.1.zip

 

Feel free to try out and report any bugs :)

 

8. 2nd Phase Tasks

In the 2nd phase of GSoC 2009, we'll see some more interesting backend features when integrating the Magento backend to Joomla !

  1. Integrate Magento backend --> to Joomla backend
  2. Wrap up the SSO to complete the integrated backend solution.