$app->get('/', function () use($app, $view) {
        $permissions = g::findPermissions();
        $data = ['permissions' => $permissions->toArray(true)];
        $view->render('permissions/index.php', $data);
    });
    $app->get('/edit/:permId', function ($permId) use($app, $view) {
        $permission = g::findPermissionById($permId);
        $data = ['permission' => $permission->toArray()];
        $view->render('permissions/edit.php', $data);
    });
    $app->post('/edit/:permId', function ($permId) use($app, $view) {
        $permission = g::findPermissionById($permId);
        $data = ['success' => true];
        $post = $app->request->post();
        $ds = g::getDatasource();
        $permission->name = $post['name'];
        $permission->description = $post['description'];
        try {
            $ds->save($permission);
        } catch (\Exception $e) {
            $data['success'] = false;
        }
        $data['permission'] = $permission->toArray();
        $view->render('permissions/edit.php', $data);
    });
    $app->get('/view/:name', function ($perm) use($app, $view) {
        $permission = is_numeric($perm) ? g::findPermissionById($perm) : g::findPermissionByName($perm);
        $data = ['permission' => $permission->toArray(), 'groups' => $permission->groups->toArray(true)];
        $view->render('permissions/view.php', $data);
    });
});