Added code so that the miCASA cache gets cleaned up for user casaatsd

when updating the realm information for the ATS.
This commit is contained in:
Juan Carlos Luciani 2007-05-18 22:01:14 +00:00
parent 953a013002
commit d6b3aef35f

View File

@ -541,6 +541,30 @@ global boolean Write() {
if (exit != 0)
y2error("Failed to create " + iaRealmsFile);
// Obtain the uid of casaatsd
string uid = "";
ret = (map) SCR::Execute(.target.bash_output, "id -u casaatsd");
exit = ret["exit"]:-1;
if (exit == 0)
{
string cmd_output = ret["stdout"]:"";
list<string> uidComponents = splitstring(cmd_output, "\n");
uid = uidComponents[0]:"";
y2milestone("casaatsd uid = " + uid);
// Clear out the credentials that may have been saved in miCASA
// for this user.
cmd = sformat("CASAcli -r -u %1", uid);
ret = (map) SCR::Execute(.target.bash_output, cmd);
exit = ret["exit"]:-1;
if (exit != 0)
y2error("Failed to remove casaatsd credentials");
}
else
{
y2error("Failed to obtain casaatsd uid");
}
// Add the real information to auth.policy and iaRealms.xml files
map<string, map> realms = (map<string, map>) CasaAts::Settings["CONFIG_CASAATS_REALMS"]:$[];
foreach (string key, map realm, realms, {
@ -589,16 +613,9 @@ global boolean Write() {
if (exit != 0)
y2error("Failed to set realm " + realmId);
// Obtain the uid of casaatsd
ret = (map) SCR::Execute(.target.bash_output, "id -u casaatsd");
exit = ret["exit"]:-1;
if (exit == 0)
// Save Proxy User Credentials in miCASA if we have the uid of casaatsd
if (uid != "")
{
string cmd_output = ret["stdout"]:"";
list<string> uidComponents = splitstring(cmd_output, "\n");
string uid = uidComponents[0]:"";
y2milestone("casaatsd uid = " + uid);
// Set the Proxy User Credentials in miCASA
cmd = sformat("KEYVALUE=\"%1\" CASAcli -s -u %2 -n %3 -k CN", proxy_username, uid, realmId);
ret = (map) SCR::Execute(.target.bash_output, cmd);
@ -614,7 +631,7 @@ global boolean Write() {
}
else
{
y2error("Failed to obtain casaatsd uid");
y2error("Not setting proxy credentials in miCASA due to blank uid");
}
});