diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libtdeldap.cpp | 26 | ||||
-rw-r--r-- | src/libtdeldap.h | 2 |
2 files changed, 24 insertions, 4 deletions
diff --git a/src/libtdeldap.cpp b/src/libtdeldap.cpp index 0176bbe..777f20d 100644 --- a/src/libtdeldap.cpp +++ b/src/libtdeldap.cpp @@ -2509,6 +2509,15 @@ int LDAPManager::writeClientCronFiles(TQString *errstr) { stream << CRON_UPDATE_NSS_COMMAND << "\n"; file.close(); + + if (chmod(CRON_UPDATE_NSS_FILE, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) < 0) { + if (errstr) *errstr = TQString("Unable to change permissions of \"%1\"").arg(CRON_UPDATE_NSS_FILE); + return -1; + } + } + else { + if (errstr) *errstr = TQString("Unable to write file \"%1\"").arg(CRON_UPDATE_NSS_FILE); + return -1; } if (system(CRON_UPDATE_NSS_COMMAND) < 0) { @@ -2519,7 +2528,7 @@ int LDAPManager::writeClientCronFiles(TQString *errstr) { return 0; } -void LDAPManager::writePrimaryRealmCertificateUpdateCronFile() { +int LDAPManager::writePrimaryRealmCertificateUpdateCronFile(TQString *errstr) { TQFile file(CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_FILE); if (file.open(IO_WriteOnly)) { TQTextStream stream( &file ); @@ -2531,12 +2540,23 @@ void LDAPManager::writePrimaryRealmCertificateUpdateCronFile() { stream << CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_COMMAND << "\n"; file.close(); + + if (chmod(CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_FILE, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH) < 0) { + if (errstr) *errstr = TQString("Unable to change permissions of \"%1\"").arg(CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_FILE); + return -1; + } + } + else { + if (errstr) *errstr = TQString("Unable to write file \"%1\"").arg(CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_FILE); + return -1; } if (system(CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_COMMAND) < 0) { - printf("ERROR: Execution of \"%s\" failed!\n\r", CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_COMMAND); - return; + if (errstr) *errstr = TQString("Execution of \"%s\" failed").arg(CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_COMMAND); + return -1; } + + return 0; } LDAPRealmConfigList LDAPManager::readTDERealmList(KSimpleConfig* config, bool disableAllBonds) { diff --git a/src/libtdeldap.h b/src/libtdeldap.h index a6d47b4..820b803 100644 --- a/src/libtdeldap.h +++ b/src/libtdeldap.h @@ -426,7 +426,7 @@ class LDAPManager : public TQObject { int getTDECertificate(TQString certificateName, TQString fileName, TQString *errstr=0); int setPasswordForUser(LDAPUserInfo user, TQString *errstr); - static void writePrimaryRealmCertificateUpdateCronFile(); + static int writePrimaryRealmCertificateUpdateCronFile(TQString *errstr=0); static TQString getMachineFQDN(); static int writeTDERealmList(LDAPRealmConfigList realms, KSimpleConfig* config, TQString *errstr=0); static LDAPRealmConfigList readTDERealmList(KSimpleConfig* config, bool disableAllBonds=false); |