diff --git a/ChangeLog b/ChangeLog index 753d88ac..718e9dae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -23613,3 +23613,6 @@ 2022-11-05 Fred Gleason * Fixed a regression in rdcatch(1) that broke record and play-out metering. +2022-11-05 Fred Gleason + * Fixed a regression in rdadmin(1) that incorrectly handled changing + a password to an empty value. diff --git a/lib/rduser.cpp b/lib/rduser.cpp index 3c04b5df..bd61e4b0 100644 --- a/lib/rduser.cpp +++ b/lib/rduser.cpp @@ -147,7 +147,12 @@ QString RDUser::password() const void RDUser::setPassword(const QString &password) { user_password=password; - SetRow("PASSWORD",QString(password.toUtf8().toBase64())); + if(password.isEmpty()) { + SetRowNull("PASSWORD"); + } + else { + SetRow("PASSWORD",QString(password.toUtf8().toBase64())); + } } @@ -831,3 +836,14 @@ void RDUser::SetRow(const QString ¶m,bool value) const { SetRow(param,RDYesNo(value)); } + + +void RDUser::SetRowNull(const QString ¶m) const +{ + QString sql; + + sql=QString("update `USERS` set `")+ + param+"`=NULL where "+ + "`LOGIN_NAME`='"+RDEscapeString(user_name)+"'"; + RDSqlQuery::apply(sql); +} diff --git a/lib/rduser.h b/lib/rduser.h index 5eb871b9..10db8781 100644 --- a/lib/rduser.h +++ b/lib/rduser.h @@ -118,6 +118,7 @@ class RDUser void SetRow(const QString ¶m,const QString &value) const; void SetRow(const QString ¶m,int value) const; void SetRow(const QString ¶m,bool value) const; + void SetRowNull(const QString ¶m) const; QString user_name; QString user_password; };