Login Pages - Settings
Introduction
To fine-tune the behavior of a login page you need to edit its settings.
Rather than go through each item on the Settings tab, most of which are self-explanatory, we will cover the more difficult items and the places where you need a heads up
Theme
The default theme is called Default and redirects you to the Bootstrap 5 page.
There is a special theme called Custom that allows you to specify your own URLs to redirect to.
There are also a number of predefined themes. If you select one of these themes, you will be redirected to the older Webix-style login pages.
The items in the dropdown list are defined in the DynamicLogin.php file in /var/www/html/cake3/rd_cake/config/DynamicLogin.php.
-
The CakePHP Controller will then determine:
Which login page to display, based on the value of Theme.
Which language to display on the page depends on the default language selected for the login page.
Slideshow
If you have added multiple photos, you can use the slideshow function.
The duration per slide can be fine-tuned by editing the settings of the photo.
You can also force the slideshow to be viewed so that the login screen pop-up only appears after the specified time has elapsed.
Automatically add a suffix
This function is useful for sites where a permanent user registers by entering their email address and password.
When the permanent user is created (provided the settings on the realm are so), a suffix is added.
This will give you a username like dirk@gmail.com@our_internet_cafe.
If you specify the auto-add suffix as our_internet_cafe, this value is automatically appended to the user name specified by the user.
Sending Email
T&C URL
You can specify a
URL for T&C
Remember, if this
URL is on a different server, you will need to include an entry in the Captive Portal walled garden for the user to reach this
URL.
Show usage
Support for Arabic
Support for Arabic is now also included.
However, there is one small change you should make to make the system work optimally.
Edit the page /var/www/html/login/bootstrap5/index.html.
Remove the default Bootstrap 5 stylesheet.
<!--Comment the line below out if you are planning to implement languages including Arabic-->
<!--<link href="css/bootstrap.min.css" rel="stylesheet">-->
if(i18n == 'ar_AR'){
$('#htmlMain').attr('dir','rtl');
$('#htmlMain').attr('lang','ar');
//RTL Stylesheet
$('<link/>', {
rel: 'stylesheet',
type: 'text/css',
href: 'css/bootstrap.rtl.min.css'
}).appendTo('head');
}else{
//Normal Stylesheet (if you have commented out the normal Bootstrap stylesheet - activate this section for non-Arabic languages
$('<link/>', {
rel: 'stylesheet',
type: 'text/css',
href: 'css/bootstrap.min.css'
}).appendTo('head');
}
This tweak allows RTL and normal stylesheet to coexist, so you can output pages in Arabic and other languages.
If you do not perform this tweak, RTL styling will be restricted.
User Registration With Top-Up Profile
When you enable user registration for a login page, you must specify the realm and profile to which the newly registered user will belong.
A popular option is to choose a profile of the Data Top-Up type.
If you choose such a profile, it is very important to assign an initial top-up value to the user in order to limit the data that the user can use.
If you do not specify an initial top-up value, the user may be able to use unlimited data.
The file /var/www/cake3/rd_cake/src/Controller/RegisterUsersController.php contains a section that you can enable to automatically add the first top-up for you when the user registers.
Simply change $add_topup = true; and specify the value of the first top-up
//============== SMALL HACK 26 MAY 2022 ===============
//==== USE THIS TO ADD THE INITIAL DATA / TIME FOR USER REGISTRATION WITH **TOP-UP** PROFILES ====
//=====================================================
$add_topup = true;
if($add_topup){
$postTopupData = [
'user_id' => $q_u->id, //We make the owner of the Login Page the owner or the Top-Up
'permanent_user_id' => $responseData['data']['id'], //Permanent User who gets the Top-Up
'type' => 'data', //Type (data, time or days_to_use)
'value' => '10', //**Change VALUE**
'data_unit' => 'mb', //**Change VALUE**
'comment' => 'User Reg First TopUp', //Comment to ID them
'token' => $token //Token of the Login Page owner
];
$topup_add_url = 'http://127.0.0.1/cake3/rd_cake/top-ups/add.json';
$topup_response = $this->_add_initial_topup($topup_add_url,$postTopupData);
$postData['top_up'] = $topup_response;
}
//-----------------------------------------------
//======== SMALL HACK 26 MAY 2022 ===============
//----------------------------------------------
CoovaChilli-specific settings
As of June 2022, we have added two options that apply specifically to CoovaChilli-based captive portals.
One allows you to specify whether the JSON interface should not be used (for whatever reason, e.g. because it cannot be compiled with this option)
The other option is to use CHAP instead of PAP.
Complications with the JSON interface
If you are serving the login page from a public server with an FQDN and want to make Ajax calls to Coova Chili's JSON interface, most modern browsers will only allow these Ajax calls over HTTPS.
For this to work, you need to configure Coova to support HTTPS. (Port 4990)
Not all Coova Chili instances provide this support, and the certificates required for this support to work properly make things even more complicated.
If we specify on the login page NOT to use the JSON interface, the login page will fall back to /var/www/html/login/bootstrap5/js/sConnectSimple.js instead of /var/www/html/login/bootstrap5/js/sConnect.js to connect and disconnect the user.
However, there is a trade-off and the session details will be missing after successful authentication.
Use this option for devices such as the Teltonika routers.
Using CHAP instead of PAP
Coova Chili normally uses PAP authentication..
For this to work, it uses a UAM service with a UAM secret to encrypt the password.
You can also choose to use CHAP and NOT use the UAM service.
For this to work correctly, you must omit the UAM secret when configuring CoovaChilli.
If you decide to use CHAP, you should omit the UAM secret in the CoovaChilli configuration.
For MESHdesk and APdesk, you can now also omit the UAM secret in the configuration.
Also make sure that your MESHdesk firmware on OpenWrt is the latest one that includes this support.