Minor Changes
- 19ecfe8: Route guard by permission (#4332): the router refuses a page whose
meta.permission(a string, or a list needing every entry; a parent's covers its children) is not granted, with the "Access Denied" toast, theauth:access-deniedsignal ({ path, permission }) and a redirect to/. It waits for a judge'sready()and fails closed; without a security checker nothing is checked.ctx.routes(path, routes, { permission })sets it on a group, and a route menu entry without its ownpermissionfollows its route's. A route that carriedmeta.permissionfor display only is now guarded.