modx-ccc-2015 / whishlist

The overall repository with MODX issues to tackle together at the MODX CCC 2015. This place is ment to be as a big pond of possibilies.
0 stars 0 forks source link

MODX API & Remote User Control #48

Closed johanmolen closed 3 years ago

johanmolen commented 9 years ago

What do we want?

Managing all your websites made easy! We want to create a single application that can manage multiple content management systems for example MODX. Making it easy to create a single user in multiple MODX instances or update the user password in multiple systems with a one click.

What do we need?

If we take MODX as example we need a public API that we can call.

Something like this:

Within the application we connect to such API. We can post a XML to the API with the following content.

<?xml version="1.0"?>
<request>
<api_username>johndoe</api_username>
<api_key>YN9Y5gQeGb9qt7yP1t88t7H0Xk1w9Y1R</api_key>
<api_version>1.0</api_version>
<update>
<field key=”username”>johndoe</field>
<field key=”firstname”>john</field>
</update>
<fields>
<firstname>jane</firstname>
<password>anewpassword</password>
</fields>
</request>

Of course the API needs a good security layer and maybe SSL to make sure it is safe. We made the example in XML but JSON is a good possibility either. Within MODX we have API page were we can manage all API users and API keys. Once we got this we can connect our application with the API. In the application we can create websites that we manage. We can now sync MODX data with our application and show all created users en list MODX data like the current version.

What does the application need?

First of all we need a login page were you can login safely. Once you logged in successfully you hit the dashboard. On the dashboard you manage your websites and resync data with their content management system. The list contains all created websites with their containing users and current version. You can now add a single user to multiple websites or even delete a user in multiple systems.

Some functions we need:

Table: ​content_management_systems

Example record: ​1, MODX, 2.1.7, 1

Contains all the content management systems we can manage within the application.

Table: ​websites

Example record:​1, 1, your site, your-site.com, johndoe, johndoekey, 1.0, your-site.com/api/, 2.1.4, NOW(), NOW()

Contains all the websites you manage. The version field holds the current version of the content management system that is installed.

Table:​ websites_users

Example record: ​1, 1, 1, johndoe, john, doe, john@doe.com, 1, NOW(), NOW()

This table holds all the users that belong to a website. The sync_id is used to match users between the two systems for example the external id field.

Table:​ users

Example record: ​1, john@doe.com, johndoe, john, doe, password, 1, NOW(), NOW()

Contains all users that can access the application.

gpsietzema commented 9 years ago

+1 :+1: