📃
NewBot
  • NewBot, what is it?
  • ConverseScript Syntax
    • Variables
    • Arithmetic
    • Boolean
    • Array and object
    • Entering text and output
    • Magic variables
    • Condition
    • Loop
    • Functions
    • The decorators
      • Use @Condition
      • Use @Action
      • Use @Format
      • Use @Intent
      • Use @Event
  • Prebuilt Formats for Widget
    • Quick Replies
    • Multi Cards
    • Articles
    • Form
  • Pre-built function for the widget
    • Request()
    • Map()
    • _ (lodash)
  • Get Started with Framework
    • Install
    • Main Skill
    • Write the conversational script
  • Use NewBot Framework JS
    • Create a skill (more details)
      • Relationship between skills
      • Use the functions of a child competency
      • Conditional
      • Control access to a skill
    • Create a JavaScript function and trigger it in ConverseScript
    • The constants
    • Write formats
      • Write and use multi-formats
      • Share formats
    • Internationalization (i18n)
    • Set up an NLP system
      • Share the NLP system
      • Use DialogFlow
    • Deploy on the browser
    • Run the chatbot on NodeJS
    • Send data when running the chatbot
    • The middlewares
    • Save the user's progress
    • User object
  • Unit Tests
    • Test a scenario
    • Test variables
    • Spy a function
    • Create a mock
    • Test the events
    • Test the actions
Powered by GitBook
On this page

Was this helpful?

  1. Use NewBot Framework JS
  2. Create a skill (more details)

Control access to a skill

Guards are used to control access to a skill. We can block the reading of the skill according to one condition! This is very useful for an authentication system. Here is the JS code:

import code from "./main.converse";
import notAuthorizedSkill from "./skills/not-authorized/not-authorized";

export default {
  code,
  canActivated: ["notAuthorizedSkill"],
  skills: {
    notAuthorizedSkill,
  },
};

Add the `canActivated property with children's skills to control access.

Here is the conversational script in ./skills/not-authorized/not-authorized.converse

@Event('canActivate')
auth() {
    > Your password ?
    Prompt()
    if (:text == 'azerty') {
        return true
    }
    return false
}

Put a function with the @Event('canActivate') decorator. This function will be executed as a priority. If the function returns true, the skill scenario will continue. Otherwise, if the function returns false then the user will not go further in the scenario

PreviousConditionalNextCreate a JavaScript function and trigger it in ConverseScript

Last updated 3 years ago

Was this helpful?