docs: def AuthMiddleware(app):
      """
      Add authentication and authorization middleware to the ``app``.
      """
      # url_for mustn't be used here because AuthMiddleware is built once at startup,
      # url path can be reconstructed only on http requests (based on environ)
      basic_redirect_form = BasicRedirectFormPlugin(login_form_url="/signin",
                                                    login_handler_path="/login",
                                                    post_login_url="/",
                                                    logout_handler_path="/logout",
                                                    post_logout_url="/signin",
                                                    rememberer_name="cookie")
  
      return setup_sql_auth(
              app,
              user_class = model.User,
              group_class = model.Group,
              permission_class = model.Permission,
              dbsession = model.meta.Session,
              form_plugin = basic_redirect_form,
              cookie_secret = config['cookie_secret'],
              translations = {
                  'user_name': 'login',
                  'users': 'users',
                  'group_name': 'name',
                  'groups': 'groups',
                  'permission_name': 'name',
                  'permissions': 'permissions',
                  'validate_password': 'validate_password'},
              )