func (routeDir *RouteDirectory) Register(router *httptreemux.TreeMux) { var keys []DirectoryKey routes := routeDir.Routes for k := range routes { keys = append(keys, k) } for _, k := range keys { route := routes[k] if route.Visible { handler := route.Handler if route.CheckPermissions { permissionGate := NewPermissionGate(k.Ressource, k.Method, routeDir.accountInter, routeDir.render, route.Handler) handler = permissionGate.Handler } route.EffectiveHandler = handler routes[k] = route router.Handle(route.Method, route.Path, httptreemux.HandlerFunc(handler)) } } }