PDA

Bekijk Volledige Versie : DirectAdmin Login_keys probleem



PowerPanel
24/03/16, 10:52
Hi,

Voor ons nieuwe controle paneel zijn wij bezig met het koppelen van directAdmin servers via de API die directadmin beschikbaar stelt.
Om te zorgen dat gebruikers vanuit ons controle paneel direct in hun server kunnen komen willen we single-sign-on gebruiken op de directAdmin servers. Voor de single-sign-on gebruiken wij op het moment de CMD_API_LOGIN_KEYS functie, deze werkt echter alleen als in de user.config de login_keys op ON staat, deze config file kan teruggevonden worden op /usr/local/directadmin/data/users/username/user.conf. Deze login_keys staat standaard op off en wij kunnen hem alleen maar handmatig op ON te zetten. Om dit proces makkelijker te maken proberen we dit te doen via de API of op een andere manier maar na een enorme zoektocht op internet en proberen te communiceren met directadmin komen wij er niet uit.
Weet een van jullie misschien een oplossing voor dit probleem?
Is het via de API te realiseren? Of is er een template die aangepast kan worden? Of is er misschien een andere manier om dit automatisch te doen ipv handmatig op de server in te loggen en het dan aan te passen?

Egbert

Ramon Fincken
24/03/16, 12:07
DA restarten? Je kunt on create mogelijk hooken

PowerPanel
24/03/16, 13:04
Bij het restarten van DirectAdmin veranderd een bestand toch niet ineens lijkt me?
Ik snap niet heel goed wat je bedoeld met on create hooken.

MarkKapitein
24/03/16, 13:25
Als je met direct een user aanmaakt heb je pre en post hooks, met die hooks kan je inhaken op bestanden of settings in directadmin, zodoende kan je ook per user settings meegeven ssl aanzetten of inderdaad die keys activeren.

dennis0162
24/03/16, 13:44
Je kan gewoon CMD_API_MODIFY_USER aanroepen en dan:

login_keys => ON in je array zetten. Wel oppassen dat je alle oude values ook mee geeft (eerst ophalen met de API?)


Als je dit bij alle users wil aanpassen op de server maak je een loop met alle users erin, huidige values ophalen van user en dan CMD_API_MODIFY_USER pas je alles aan. Duurt wel even :thumbup:

Of met SED of perl replacen maar dat zou via SSH moeten dan.

PowerPanel
24/03/16, 14:22
We gaan er mee aan de slag, bedankt voor de input!

PowerPanel
06/04/16, 10:04
Hi,

We hebben beide suggesties geprobeerd maar helaas zonder resultaat. Misschien dat we iets verkeerd doen, dat zou natuurlijk heel goed kunnen.

De eerste methode moet via ssh, dit is op dit moment geen haalbare oplossing.

De tweede methode hebben we geprobeerd maar lijkt niet te werken. De volgende regel wordt gestuurd, maar het conf bestand is daarna niet aangepast.
http://server:2222/CMD_API_MODIFY_USER?action=customize&user=multitest&vdomains=10&php=ON&login_keys=ON

Sturen we misschien foute regel naar de server toe hierzo?

dennis0162
06/04/16, 10:45
Ik heb het even getest in onze interne applicatie maar lijkt gewoon te werken:



$sock->set_method("POST");

$sock->query('/CMD_API_MODIFY_USER',
array(
'action' => 'customize',
'user' => $username,
'bandwidth' => $result3['bandwidth'],
'quota' => $result3['quota'],
'uvdomains' => 'ON',
'unsubdomains' => 'ON',
'unemails' => 'ON',
'unemailf' => 'ON',
'unemailml' => 'ON',
'unemailr' => 'ON',
'umysql' => 'ON',
'udomainptr' => 'ON',
'uftp' => 'ON',
'sysinfo' => 'ON',
'ssl' => 'ON',
'cron' => 'ON',
'spam' => 'ON',
'php' => 'ON',
'cgi' => 'ON',
'catchall' => 'ON',
'dnscontrol' => 'ON',
'suspend_at_limit' => 'OFF',
'ns1' => $result3['ns1'],
'ns2' => $result3['ns2'],
'login_keys' => 'ON'
));

$result = $sock->fetch_parsed_body();



- - - Updated - - -

OFF en ON werken beide trouwens.

PowerPanel
08/04/16, 14:35
Ik heb het even getest in onze interne applicatie maar lijkt gewoon te werken:



$sock->set_method("POST");

$sock->query('/CMD_API_MODIFY_USER',
array(
'action' => 'customize',
'user' => $username,
'bandwidth' => $result3['bandwidth'],
'quota' => $result3['quota'],
'uvdomains' => 'ON',
'unsubdomains' => 'ON',
'unemails' => 'ON',
'unemailf' => 'ON',
'unemailml' => 'ON',
'unemailr' => 'ON',
'umysql' => 'ON',
'udomainptr' => 'ON',
'uftp' => 'ON',
'sysinfo' => 'ON',
'ssl' => 'ON',
'cron' => 'ON',
'spam' => 'ON',
'php' => 'ON',
'cgi' => 'ON',
'catchall' => 'ON',
'dnscontrol' => 'ON',
'suspend_at_limit' => 'OFF',
'ns1' => $result3['ns1'],
'ns2' => $result3['ns2'],
'login_keys' => 'ON'
));

$result = $sock->fetch_parsed_body();



- - - Updated - - -

OFF en ON werken beide trouwens.

Hi Dennis,

Mijn collega heeft het net geprobeerd maar krijgt jou versie van de code niet werkend.
Heb je misschien een instelling gedaan in het systeem waardoor deze code werkt? of heb je dit out of the box werkend?

Egbert

dennis0162
08/04/16, 14:36
Zou gewoon out of the box moeten werken. Je hebt wel de nieuwste DirectAdmin versie neem ik aan?

Post het stukje PHP code anders even.

PowerPanel
08/04/16, 14:52
Hi Dennis,
bedankt voor je hulp alvast.
Dit is het script wat mijn collega heeft gebruikt om te testen.
Alle overige instellingen werken wel, alleen de login_keys niet.


$server_ip = 'ip-address';
$server_login = 'admin';
$server_pass = 'pass';
$server_host = 'localhost';
$server_port = 2222;

require_once 'httpsocket.php';

$sock = new HTTPSocket;
$sock->connect($server_host, $server_port);
$sock->set_login($server_login, $server_pass);
$sock->set_method("POST");
$sock->query('/CMD_API_MODIFY_USER', array(
'action' => 'customize',
'user' => 'multitest',
'action' => 'customize',
'user' => 'multitest',
'bandwidth' => '123456',
'quota' => '1234',
'uvdomains' => 'ON',
'unsubdomains' => 'ON',
'unemails' => 'ON',
'unemailf' => 'ON',
'unemailml' => 'ON',
'unemailr' => 'ON',
'umysql' => 'ON',
'udomainptr' => 'ON',
'sysinfo' => 'ON',
'ssl' => 'ON',
'cron' => 'ON',
'spam' => 'ON',
'php' => 'ON',
'cgi' => 'ON',
'catchall' => 'ON',
'dnscontrol' => 'ON',
'suspend_at_limit' => 'OFF',
'ns1' => 'ns1.pipo.nl',
'ns2' => 'ns2.pipo.nl',
'login_keys' => 'ON'
));

print_r($sock->fetch_parsed_body());


Egbert

dennis0162
08/04/16, 16:02
Krijg je een foutmelding of voert hij alles wel door maar login_keys niet?

PowerPanel
08/04/16, 16:05
Dat laatste, alles wordt doorgevoerd alleen de login_keys niet