Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#!/usr/bin/env php<?php
$root = dirname(dirname(dirname(__FILE__)));require_once $root.'/scripts/__init_script__.php';
$cert = file_get_contents('php://stdin');
if (!$cert) { exit(1);}
$parts = preg_split('/\s+/', $cert);if (count($parts) < 2) { exit(1);}
list($type, $body) = $parts;
$user_dao = new PhabricatorUser();$ssh_dao = new PhabricatorUserSSHKey();$conn_r = $user_dao->establishConnection('r');
$row = queryfx_one( $conn_r, 'SELECT userName FROM %T u JOIN %T ssh ON u.phid = ssh.userPHID WHERE ssh.keyType = %s AND ssh.keyBody = %s', $user_dao->getTableName(), $ssh_dao->getTableName(), $type, $body);
if (!$row) { exit(1);}
$user = idx($row, 'userName');
if (!$user) { exit(1);}
if (!PhabricatorUser::validateUsername($user)) { exit(1);}
$bin = $root.'/bin/ssh-exec';$cmd = csprintf('%s --phabricator-ssh-user %s', $bin, $user);// This is additional escaping for the SSH 'command="..."' string.$cmd = addcslashes($cmd, '"\\');
$options = array( 'command="'.$cmd.'"', 'no-port-forwarding', 'no-X11-forwarding', 'no-agent-forwarding', 'no-pty',);
echo implode(',', $options);exit(0);