cPanel Single Sign-On (link) to existing feature or plugin (ftp_accounts, wp-toolkit…) without "implements" parameter ?

nlaruelle

Active Member
Sep 4, 2017
39
17
58
Belgium
cPanel Access Level
Root Administrator
Hello cPanel lovers !

I am a hosting provider using WHMCS as billing software and customer area.

Inside WHMCS, we have few shortcut icons using the SSO system of cPanel, you can find information here and see how it looks in my attached screenshot :

https://docs.whmcs.com/CPanel_Single_Sign-On

Inside the WHMCS template (.tpl files) clientareaproductdetails.tpl or /modules/servers/cpanel/templates/overview.tpl we can find some links written like this (examples) :
- clientarea.php?action=productdetails&id=123&dosinglesignon=1&app=Domains_AddonDomains
- clientarea.php?action=productdetails&id=123&dosinglesignon=1&app=Database_phpMyAdmin
- clientarea.php?action=productdetails&id=123&dosinglesignon=1&app=FileManager_Home

These "link icons" are useful for the beginner customer, because, with only 1 click, he can go from the WHMCS Billing Secured Area to the cPanel specific section : Addon Domains, or PhpMyAdmin, or FileManager, or… few more things about emails and so on.

We can actually find the list of compatible targets by launching this command line on the server :

Bash:
> whmapi1 get_users_links user=$USER
Here is my output :

HTML:
data:
  API_Tokens_Manager: frontend/paper_lantern/api_tokens/index.html
  Backups_Home: frontend/paper_lantern/backup/index.html
  Calendar_Configure: frontend/paper_lantern/mail/calendars_and_contacts/index.html
  ContactInfo_Change: frontend/paper_lantern/contact/index.html
  Cron_Home: frontend/paper_lantern/cron/index.html
  Database_MySQL: frontend/paper_lantern/sql/index.html
  Database_phpMyAdmin: frontend/paper_lantern/sql/PhpMyAdmin.html
  Domains_AddonDomains: frontend/paper_lantern/addon/index.html
  Domains_SubDomains: frontend/paper_lantern/subdomain/index.html
  Email_AccountLevelFiltering: frontend/paper_lantern/mail/filters/userfilters.html
  Email_Accounts: frontend/paper_lantern/email_accounts/index.html
  Email_Archive: frontend/paper_lantern/mail/archive.html
  Email_Authentication: frontend/paper_lantern/email_deliverability/
  Email_AutoResponders: frontend/paper_lantern/mail/autores.html
  Email_BoxTrapper: frontend/paper_lantern/mail/boxtrapper.html
  Email_DefaultAddress: frontend/paper_lantern/mail/def.html
  Email_DeliveryReport: frontend/paper_lantern/mail/route.html
  Email_Disk_Usage: frontend/paper_lantern/mail/manage_disk_usage/
  Email_Forwarders: frontend/paper_lantern/mail/fwds.html
  Email_GreyListing: frontend/paper_lantern/mail/greylisting/index.html
  Email_MailingLists: frontend/paper_lantern/mail/lists.html
  Email_Routing: frontend/paper_lantern/mail/email_routing.html
  Email_SpamFilter: frontend/paper_lantern/mail/spam/index.html
  Email_UserLevelFiltering: frontend/paper_lantern/mail/filters/managefilters.html
  FileManager_Home: frontend/paper_lantern/filemanager/index.html
  Locale_Change: frontend/paper_lantern/setlang/index.html
  Password_Change: frontend/paper_lantern/passwd/index.html
  SSL_TLS_Manager: frontend/paper_lantern/ssl/index.html
  SSL_TLS_Status: frontend/paper_lantern/security/tls_status/
  SSL_TLS_Wizard: frontend/paper_lantern/security/tls_wizard/
  Site_Software: frontend/paper_lantern/addoncgi/cpaddons.html
  Softaculous_Home: frontend/paper_lantern/softaculous/index.live.php
  Softaculous_WordPress: frontend/paper_lantern/softaculous/index.live.php?act=wordpress
  Stats_AWStats: frontend/paper_lantern/stats/awstats_landing.html
  WHMCS_clientarea_announcements: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_announcements
  WHMCS_clientarea_billing_info: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_billing_info
  WHMCS_clientarea_downloads: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_downloads
  WHMCS_clientarea_emails: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_emails
  WHMCS_clientarea_invoices: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_invoices
  WHMCS_clientarea_knowledgebase: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_knowledgebase
  WHMCS_clientarea_network_status: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_network_status
  WHMCS_clientarea_profile: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_profile
  WHMCS_clientarea_shopping_cart_domain_register: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_shopping_cart_domain_register
  WHMCS_clientarea_shopping_cart_domain_transfer: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_shopping_cart_domain_transfer
  WHMCS_clientarea_submit_ticket: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_submit_ticket
  billing: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_product_details
  support: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_tickets
  upgrade: frontend/paper_lantern/integration/index.html?app=WHMCS_clientarea_upgrade
metadata:
  command: get_users_links
  reason: OK
  result: 1
  version: 1
It's nice because with that, WHMCS users can add some useful links to the Softaculous WordPress, or even to the SSL Status section (with the Run AutoSSL button that many new customers are looking for).

It's very very useful to be able to add direct links (shortcut icons) from WHMCS to cPanel sections !
Thanks to Softaculous to have had the good idea to register its app inside these "get_users_links" links.

But the big issue is that…

All features, plugins or apps cannot be linked directly from cPanel SSO…

Despite all the cPanel features seems to have an Appkey name :

Guide to cPanel Interface Customization - Appkeys - Developer Documentation - cPanel Documentation

Not all features, third-party plugins or apps have the mandatory parameter in their configuration file…

the parameter : implements

By launching this command, you can get the long output of all your cPanel features :


Bash:
uapi --user=$USER Branding get_applications
and for only few apps, do this

Bash:
uapi --user=$USER Branding get_applications app_keys=tls_status,ftp_accounts
See my small output :

HTML:
apiversion: 3
func: get_applications
module: Branding
result:
  data:
    ftp_accounts:
      acontent: ''
      base64_png_image: ''
      feature: ftpaccts
      file: ftp_accounts
      group: files
      height: 48
      if: $SERVICEPROVIDED{'ftp'}
      imgtype: icon
      itemdesc: Comptes FTP
      itemorder: 6
      key: ftp_accounts
      onclick: ''
      plainitemdesc: FTP Accounts
      searchtext: Comptes FTP créer ftp
      subtype: img
      target: ''
      touch: ftp
      type: image
      url: ftp/accounts.html
      width: 48
    tls_status:
      acontent: ''
      base64_png_image: ''
      feature: sslinstall
      file: tls_status
      group: security
      height: 48
      if: $HASROLE{'UserSSL'}
      imgtype: icon
      implements: SSL_TLS_Status # <---- Look at this implements parameter
      itemdesc: SSL/TLS Status
      itemorder: 7
      key: tls_status
      onclick: ''
      plainitemdesc: "[asis,SSL]/[asis,TLS] Status"
      searchtext: SSL/TLS Status
      subtype: img
      target: ''
      type: image
      url: security/tls_status/
      width: 48
  errors: ~
  messages: ~
  metadata: {}

  status: 1
  warnings: ~
Good news in this example, we can find the implements: SSL_TLS_Status parameter we need to add a AutoSSL icon from WHMCS, for-instance.

Bad news in this example, we cannot find the implements: FTP_Accounts parameter needed to add, for-instance, a useful FTP Accounts icon in the WHMCS Customer Area… or even
- Select PHP Version : to link to CloudLinux PHP LVE Manager (would be useful to selection PHP Options & Mods)
- WordPress Toolkit : to link to the wonderful features about WordPress (disable crons…)
- Imunify360 : to link to the anti-malware scan history
- Security Policy : to link to the section where we could reset the Security Questions of an account
- or anything you think it's useful to link from the beginner’s customers area, without the confusion to first, login to cPanel

The question is :

How to permanently add the "implements" parameter for any feature/plugin/app to all existing and future cPanel users to be able to directly link a shortcut icon from WHMCS (or any system using the cPanel SSO system) to any cPanel section ?

Another idea would to be able to use the "Feature Name" parameter or anything else mandatory in cPanel, to use it with the SSO system instead/in addition of the implements parameter.

I had absolutely found nothing about that after one entire afternoon Googling (during which I collect these few information).

Does anyone here have information or some clues about that ? Do I need to register a feature request and wait cPanel interest about my request or is it possible to do something on our side (command lines, development) ?

Thanks in advance to the whom understand my mind-wandering of the day! :)
 

Attachments

Last edited by a moderator:

cPRex

Jurassic Moderator
Staff member
Oct 19, 2014
16,585
2,614
363
cPanel Access Level
Root Administrator
Hey there! I'm not finding a way to get these all working with the current system either, and the API developer I wanted to speak to about this is actually out today! I'll leave this open for a bit and see if I can get you some more details later this week.
 

nlaruelle

Active Member
Sep 4, 2017
39
17
58
Belgium
cPanel Access Level
Root Administrator
Thanks cPRex! If the best way for now is to submit a feature request, tell me, then I would do it
(even at least for cPanel in house features only, adding "implements" to all cPanel sections.
For third-party plugins, I can contact each developers individually about "implements").
See you soon.
 
Last edited: