Creating admin accounts in DotKernel API

Starting from v3, DotKernel API introduces support for admin accounts. In this article we will describe two different methods of creating an admin account.

Method 1: Using API endpoint

This action can be performed only by an authenticated admin/superuser.

Once authenticated call the protected endpoint POST /admin with the following JSON body:

{
   "identity": "{IDENTITY}",
   "password": "{PASSWORD}",
   "passwordConfirm": "{PASSWORD}",
   "firstname": "{FIRSTNAME}",
   "lastname": "{LASTNAME}",
   "roles": [
     {
       "uuid": "{ROLE_UUID}"
     }
   ]
 }

after replacing:

  • {IDENTITY} with a valid username OR email address
  • {PASSWORD} with a valid password
  • {ROLE_UUID} with a valid admin role UUID (You can get a list of admin roles by calling the protected endpoint GET /admin/role)
  • {FIRSTNAME} and {LASTNAME} are optional

NOTE: You can specify multiple admin roles under the roles key.

If the submitted data is valid, the response will be similar to the below:

{
     "uuid": "d436b044-be36-11eb-9eb1-78f29ef45f43",
     "identity": "Letha_Runolfsson96",
     "firstName": "Oswald",
     "lastName": "Swift",
     "status": "active",
     "roles": [
         {
             "uuid": "eaa3d01c-9fc0-11eb-b099-78f29ef45f43",
             "name": "admin",
             "created": {
                 "date": "2021-04-17 23:07:27.000000",
                 "timezone_type": 3,
                 "timezone": "Europe/Berlin"
             },
             "updated": null
         }
     ],
     "created": {
         "date": "2021-05-26 17:27:06.194613",
         "timezone_type": 3,
         "timezone": "Europe/Berlin"
     },
     "updated": {
         "date": "2021-05-26 17:27:06.279705",
         "timezone_type": 3,
         "timezone": "Europe/Berlin"
     },
     "_links": {
         "self": {
             "href": "http://localhost:8080/admin/d436b044-be36-11eb-9eb1-78f29ef45f43"
         }
     }
 }

The new admin account is ready to use.

Method 2: Using terminal command

Run the following command in your application’s root directory:

php ./bin/cli.php admin:create -i {IDENTITY} -p {PASSWORD}

or

php ./bin/cli.php admin:create --identity {IDENTITY} --password {PASSWORD}

after replacing:

  • {IDENTITY} with a valid username OR email address
  • {PASSWORD} with a valid password

NOTE:

  • if the specified identity or password contain special characters, make sure you surround them with double quote signs
  • this method does not allow specifying an admin role – newly created accounts will have role of admin

If the submitted data is valid, the outputted response is:

Admin account has been created.

The new admin account is ready to use.

You can get more help with this command by running:

php ./bin/cli.php help admin:create

Looking for PHP, Laminas or Mezzio Support?

As part of the Laminas Commercial Vendor Program, Apidemia offers expert technical support and services for:

  • Modernising Legacy Applications
  • Migration from any version of Zend Framework to Laminas
  • Migration from legacy Laminas API Tools (formerly Apigility) to Dotkernel API
  • Mezzio and Laminas Consulting and Technical Audit
  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>