2020-02-21 Fred Gleason <fredg@paravelsystems.com>

* Added a 'USERS.EMAIL_ADDRESS' field to the database.
	* Added 'RDUser::emailAddress()', 'RDUser::setEmaiAddress()' and
	'RDUser::emailContact()' methods.
	* Added 'RDUser::emailIsValid()' and 'RDUser::emailContact()'
	static methods.
	* Added logic to rdcastmanager(1) to insert the author's e-mail
	contact automatically when posting a new episode.
This commit is contained in:
Fred Gleason
2020-02-21 13:13:06 -05:00
parent 3e78e7d44f
commit 95f8141fc9
18 changed files with 192 additions and 60 deletions

View File

@@ -162,6 +162,38 @@ void RDUser::setFullName(const QString &name) const
}
QString RDUser::emailAddress() const
{
return RDGetSqlValue("USERS","LOGIN_NAME",user_name,"EMAIL_ADDRESS").
toString();
}
void RDUser::setEmailAddress(const QString &str) const
{
SetRow("EMAIL_ADDRESS",str);
}
QString RDUser::emailContact() const
{
QString ret;
QString sql=QString("select ")+
"EMAIL_ADDRESS,"+ // 00
"FULL_NAME "+ // 01
"from USERS where "+
"LOGIN_NAME=\""+RDEscapeString(user_name)+"\"";
RDSqlQuery *q=new RDSqlQuery(sql);
if(q->first()) {
ret=RDUser::emailContact(q->value(0).toString(),q->value(1).toString());
}
delete q;
return ret;
}
QString RDUser::description() const
{
return RDGetSqlValue("USERS","LOGIN_NAME",user_name,"DESCRIPTION").toString();
@@ -559,6 +591,36 @@ QStringList RDUser::services() const
}
bool RDUser::emailIsValid(const QString &addr)
{
QStringList f0=addr.split("@",QString::KeepEmptyParts);
if(f0.size()!=2) {
return false;
}
QStringList f1=f0.last().split(".");
if(f1.size()<2) {
return false;
}
return true;
}
QString RDUser::emailContact(const QString &addr,const QString &fullname)
{
QString ret;
if(RDUser::emailIsValid(addr)) {
ret=addr;
if(!fullname.isEmpty()) {
ret+=" ("+fullname+")";
}
}
return ret;
}
void RDUser::SetRow(const QString &param,const QString &value) const
{
RDSqlQuery *q;