diff --git a/cli.cpp b/cli.cpp index e816021..95cceba 100644 --- a/cli.cpp +++ b/cli.cpp @@ -138,6 +138,31 @@ std::pair CLIHandler::user_show(const std::vector CLIHandler::page_list(const std::vector &args) +{ + auto pageDao = this->db->createPageDao(); + QueryOption o; + auto result = pageDao->getPageList(o); + std::stringstream stream; + for(std::string pagename : result) + { + Page p = pageDao->find(pagename).value(); + stream << p.name << " " << p.pageid << " " << std::string(p.listed ? "listed" : "unlisted") << std::endl; + } + return {true, stream.str()}; +} + +std::pair CLIHandler::pageperms_set_permissions(const std::vector &args) +{ + std::string page = args.at(0); + std::string username = args.at(1); + std::string perms = args.at(2); + + auto permissionsDao = this->db->createPermissionsDao(); + permissionsDao->save(page, username, Permissions{perms}); + return {true, ""}; +} + std::pair CLIHandler::attach(const std::vector &args) { /* TODO: consider authentication */ diff --git a/cli.h b/cli.h index 5b5835f..e39731e 100644 --- a/cli.h +++ b/cli.h @@ -30,6 +30,8 @@ class CLIHandler std::pair user_set_perms(const std::vector &args); std::pair user_list(const std::vector &args); std::pair user_show(const std::vector &args); + std::pair page_list(const std::vector &args); + std::pair pageperms_set_permissions(const std::vector &args); std::pair version(const std::vector &args); std::vector cmds{ @@ -43,6 +45,20 @@ class CLIHandler {"list", "- lists users", 0, {}, &CLIHandler::user_list}, {"show", "[user] - show detailed information about user", 1, {}, &CLIHandler::user_show}}}, &CLIHandler::cli_help}, + {"page", + "operation on pages", + 1, + {{{"list", "- lists existing pages", 0, {}, &CLIHandler::page_list}}}, + &CLIHandler::cli_help}, + {"pageperms", + "set permissions on pages", + 1, + {{{"set", + "- [page] [username] [permissions] set permisisons on page", + 3, + {}, + &CLIHandler::pageperms_set_permissions}}}, + &CLIHandler::cli_help}, {"exit", "exit cli", 0,