diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitano/auth.lua | 3 | ||||
-rw-r--r-- | lib/gitano/util.lua | 24 |
2 files changed, 25 insertions, 2 deletions
diff --git a/lib/gitano/auth.lua b/lib/gitano/auth.lua index 8c3a4e6..2e275dd 100644 --- a/lib/gitano/auth.lua +++ b/lib/gitano/auth.lua @@ -49,8 +49,7 @@ local function set_environment(repo_root, repo, context, transactionid) return env end -local function is_authorized(user, source, cmdline) - local repo_root = os.getenv("GITANO_ROOT") +local function is_authorized(user, source, cmdline, repo_root) local keytag = "" local authorized = false diff --git a/lib/gitano/util.lua b/lib/gitano/util.lua index 291c68d..ab8730a 100644 --- a/lib/gitano/util.lua +++ b/lib/gitano/util.lua @@ -15,6 +15,28 @@ local tconcat = table.concat local check_password = scrypt.verify_password +local function run_command(cmd, cmdline, parsed_cmdline, user, + config, env, repo) + log.debug("Welcome to " .. config.global.site_name) + log.debug("Running:") + for i = 1, #parsed_cmdline do + log.debug(" => " .. parsed_cmdline[i]) + end + log.debug("") + log.debug("On behalf of " .. user .. " using key " .. env["GITANO_KEYTAG"]) + + local how, why = cmd.run(config, repo, parsed_cmdline, env) + + if how ~= "exit" or why ~= 0 then + log.critical("Error running " .. parsed_cmdline[1] .. ": " .. how) + log.critical("Unable to continue") + return why + else + log.syslog.info(cmdline, "completed successfully") + return 0 + end +end + local function hash_password(password) -- For the moment we are using scrypt, -- we may decide to use other hash functions in the future @@ -502,4 +524,6 @@ return { hash_password = hash_password, check_password = check_password, + + run_command = run_command, } |