{
  "classes": [
    {
      "name": "TheRoleCtrl",
      "description": "",
      "extends": [
        "TheCtrl"
      ],
      "access": "",
      "virtual": false,
      "fires": "",
      "constructor": {
        "name": "TheRoleCtrl",
        "description": "Role controller for the-server",
        "parameters": [],
        "examples": []
      },
      "functions": [
        {
          "name": "grantTo",
          "access": "",
          "virtual": false,
          "description": "Grant a role to user",
          "parameters": [
            {
              "name": "user",
              "type": "UserEntity",
              "description": "Use to grand",
              "default": "",
              "optional": "",
              "nullable": ""
            },
            {
              "name": "roleCode",
              "type": "string",
              "description": "Role code string",
              "default": "",
              "optional": "",
              "nullable": ""
            }
          ],
          "examples": [],
          "returns": {
            "type": "Promise.<boolean>",
            "description": "True if newly added. False if already has the one"
          }
        },
        {
          "name": "revokeFrom",
          "access": "",
          "virtual": false,
          "description": "Revoke a role from user",
          "parameters": [
            {
              "name": "user",
              "type": "UserEntity",
              "description": "Use to grand",
              "default": "",
              "optional": "",
              "nullable": ""
            },
            {
              "name": "roleCode",
              "type": "string",
              "description": "Role code string",
              "default": "",
              "optional": "",
              "nullable": ""
            }
          ],
          "examples": [],
          "returns": {
            "type": "Promise.<boolean>",
            "description": "True if revoked. False if the use has not one"
          }
        },
        {
          "name": "hasAnyOf",
          "access": "",
          "virtual": false,
          "description": "Has any of roles",
          "parameters": [],
          "examples": [],
          "returns": {
            "type": "Promise.<boolean>",
            "description": ""
          }
        },
        {
          "name": "has",
          "access": "",
          "virtual": false,
          "description": "Check if has a role for signed user",
          "parameters": [],
          "examples": [],
          "returns": {
            "type": "Promise.<boolean>",
            "description": ""
          }
        }
      ]
    }
  ],
  "functions": [
    {
      "name": "create",
      "access": "",
      "virtual": false,
      "description": "Create a TheRoleCtrl instance",
      "parameters": [
        {
          "name": "args",
          "type": "*",
          "description": "",
          "default": "",
          "optional": "",
          "nullable": ""
        }
      ],
      "examples": [],
      "returns": {
        "type": "TheRoleCtrl",
        "description": ""
      }
    },
    {
      "name": "mixRoleCheck",
      "access": "",
      "virtual": false,
      "description": "Mix up controller class with sign check feature",
      "parameters": [
        {
          "name": "BaseClass",
          "type": "function",
          "description": "",
          "default": "",
          "optional": "",
          "nullable": ""
        },
        {
          "name": "roleCodes",
          "type": "Array.<string>",
          "description": "Role codes",
          "default": "",
          "optional": "",
          "nullable": ""
        },
        {
          "name": "options",
          "type": "Object",
          "description": "Optional settings",
          "default": "{}",
          "optional": true,
          "nullable": ""
        },
        {
          "name": "options.only",
          "type": "Array.<string>",
          "description": "Action names to apply.",
          "default": null,
          "optional": true,
          "nullable": ""
        }
      ],
      "examples": [],
      "returns": {
        "type": "function",
        "description": "Mixed class"
      }
    }
  ]
}