Configuration

After successfully installing ConnextCMS, you will need to configure it. The sections below will desribe the steps needed to configure ConnextCMS for your website or web app.

Superusers and Admins

ConnextCMS and KeystoneJS now have different schemes for setting up administrators. KeystoneJS uses an isAdmin field in the user model. ConnextCMS assigns SuperUser and Admin roles by copying the GUID associated with a user account into the Site Settings view.

When you first log into KeystoneJS using the default user@keystonejs.com/admin login, ConnextCMS won't be able to identify you yet as a superuser. By default that account only has 'admin' permissions and the system will send you to the ConnextCMS dashboard (at /dashboard) when you try to access the Keystone Admin UI (at /keystone).

After the ConnextCMS dashboard comes up, open a developer console in your web browser. Get your user ID by typing userdata into the console and hit enter. Locate the _id property. Here is a screenshot illustrating how to pull up a developer console in Chrome and look up this data:



The string of characters assigned to the '_id' is called a GUID. Open the file ~/myCMS/public/js/publicsettings.json. Near the bottom you'll see the field superUsers. Add your GUID to the array. Here is an example:

{
  "keyNames": ["privatePagesSection", "superUsers", "adminUsers"],
  "keyDisplay": ["Private Page Section ID", "Super User IDs (CSV)", "Admin User IDs (CSV)"],
  
  "privatePagesSection": "",
  "superUsers": ["58472dda8783bc56570f090f"],
  "adminUsers": []
}
            

If you are using the ConnextCMS Docker container along with the site template, you can edit the publicsettings.json file in the site template in the same way. This will automatically copy the settings files to their proper locations when the Docker container is restarted.

You can now restart the keystone.js program and the system will identify the user@keystonejs.com/admin login as a superuser. Once the system knows the GUID, you can then access the /keystone Admin UI and change the name, login, and password of that user, and ConnextCMS will still identify that user account as a superuser.

Site Settings View

Version 0.00.07 introduced the Site Settings view, as shown below. Two left-menu items, Site Settings and the Keystone Admin UI appear only for superusers. The latter will take you to the Keystone Admin UI. The Site Settings link will open the Site Settings view where you can set up Mailgun, assign admin and super user permissions, and add other site-wide settings.

The input fields in the Site Settings view are generated from two JSON files: /private/privatesettings.json and /public/js/publicsettings.json. Each file generates its respective sections in the Site Settings view. New fields can be added by editing the keyNames and keyDisplay arrays in those files.

As the file names indicate, the publicsettings.json file is publically accessible and is frequently used by front end JavaScript. The data in the privatesettings.json file however is only accessible through the /api/serversettings/getprivate API, which can only be accessed by logged-in super users. This private file is the best place to put sensitive information like API security keys.

Mailgun Email Integration

ConnextCMS now uses the MailGun API to send email. They have a free tier, so the service doesn't cost anything to get started. However, you need to have a domain name in order to use their service. After you've made the DNS changes and verified your domain with Mailgun, setting up the interface with ConnextCMS is easy.

Log in to ConnextCMS dashboard with a super user account. Open the Site Settings View and enter your MailGun Domain and API Key. Your domain will be something like mg.yourdomain.com and your API key can be retrieved from your MailGun dashboard.

The API handler code for interfacing with Mailgun is stored in routes/api/email.js. After saving your settings in the Site Settings view, it will be necessary to restart KeystoneJS for your changes to take affect. This will enable the password reset feature.

Private Pages

Some websites need to have private pages that are only accessible to logged in users. This can now be achieved by creating a new Page Section and designating it as a Private Page Section. To enable this feature, do the following:

  • Create a new Page Section in the ConnextCMS Dashboard. It can have any name (e.g. 'Private', 'Members', etc).
  • Retrieve the GUID for the section, which can be seen in the table when accessing the Pages -> Sections area of the ConnextCMS Dashboard.
  • Copy and paste that GUID into the Private Page Section ID input in the Site Settings view.

Any pages added to this section will only be viewable and accessible by logged in users.

Changing the Homepage

  • As shown in this video, the primary file that controls the home page is /connextCMS/templates/views/index.hbs. Although the the extension of this file is '.hbs' you can treat it like an HTML file. .hbs is the extension for a Handlebars template.
  • There is also the /connextCMS/templates/views/layouts/default.hbs that contains the header and footer, and it wraps all other .hbs files (including index.hbs). This file controls the main navigation menu on the front end and calls the JavaScript file /connextCMS/public/js/navMenu.js which generates the navigation menu, reflecting the Sections and Pages created in ConnextCMS.
  • If you are using the site template, the homepage is located in keystone/templates/views/index.hbs and the header, footer, and nav menu are control by the file keystone/templates/views/layouts/default.hbs.