From 082a42dd3974dff81b741cfdf1348007ccfba9a3 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Tue, 8 May 2018 16:04:53 +0000 Subject: [PATCH] 2018-05-07 Fred Gleason * Added a 'USERS.WEBGET_LOGIN_PRIV' field to the database. * Incremented the database version to 277. * Added 'RDUser::webgetLogin()' and 'RDUser::setWebgetLogin()' methods. * Added a 'Allow WebGet Login' control in the 'Production Rights' section of the 'User' dialog in rdadmin(1). --- ChangeLog | 7 +++++++ docs/tables/users.txt | 1 + lib/dbversion.h | 2 +- lib/rduser.cpp | 13 +++++++++++++ lib/rduser.h | 2 ++ rdadmin/createdb.cpp | 8 ++++++++ rdadmin/edit_user.cpp | 29 +++++++++++++++++++++-------- rdadmin/edit_user.h | 2 ++ rdadmin/rdadmin_cs.ts | 4 ++++ rdadmin/rdadmin_de.ts | 4 ++++ rdadmin/rdadmin_es.ts | 4 ++++ rdadmin/rdadmin_fr.ts | 4 ++++ rdadmin/rdadmin_nb.ts | 4 ++++ rdadmin/rdadmin_nn.ts | 4 ++++ rdadmin/rdadmin_pt_BR.ts | 4 ++++ utils/rdrevert/rdrevert.cpp | 19 ++++++++++++++++++- utils/rdrevert/rdrevert.h | 1 + 17 files changed, 102 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 95ddeb5f..a668317b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -16791,3 +16791,10 @@ 'SERVICES.LOG_SHELFLIFE_ORIGIN', 'SERVICES.TFC_IMPORT_TEMPLATE' and 'SERVICE.MUS_IMPORT_TEMPLATE field values to fail to be cloned from the exemplar when creating a new Service. +2018-05-07 Fred Gleason + * Added a 'USERS.WEBGET_LOGIN_PRIV' field to the database. + * Incremented the database version to 277. + * Added 'RDUser::webgetLogin()' and 'RDUser::setWebgetLogin()' + methods. + * Added a 'Allow WebGet Login' control in the 'Production Rights' + section of the 'User' dialog in rdadmin(1). diff --git a/docs/tables/users.txt b/docs/tables/users.txt index 6a411068..9bebc136 100644 --- a/docs/tables/users.txt +++ b/docs/tables/users.txt @@ -21,6 +21,7 @@ CREATE_CARTS_PRIV enum('N','Y') DELETE_CARTS_PRIV enum('N','Y') MODIFY_CARTS_PRIV enum('N','Y') EDIT_AUDIO_PRIV enum('N','Y') +WEBGET_LOGIN_PRIV enum('N','Y') ASSIGN_CART_PRIV enum('N','Y') Retired CREATE_LOG_PRIV enum('N','Y') DELETE_LOG_PRIV enum('N','Y') diff --git a/lib/dbversion.h b/lib/dbversion.h index 5c8ba5d7..55808d65 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 276 +#define RD_VERSION_DATABASE 277 #endif // DBVERSION_H diff --git a/lib/rduser.cpp b/lib/rduser.cpp index 2947b2bc..e62e621d 100644 --- a/lib/rduser.cpp +++ b/lib/rduser.cpp @@ -265,6 +265,19 @@ void RDUser::setEditAudio(bool priv) const } +bool RDUser::webgetLogin() const +{ + return RDBool(RDGetSqlValue("USERS","LOGIN_NAME",user_name, + "WEBGET_LOGIN_PRIV").toString()); +} + + +void RDUser::setWebgetLogin(bool priv) const +{ + SetRow("WEBGET_LOGIN_PRIV",priv); +} + + bool RDUser::createLog() const { return RDBool(RDGetSqlValue("USERS","LOGIN_NAME",user_name, diff --git a/lib/rduser.h b/lib/rduser.h index 3d8a3957..12fa6552 100644 --- a/lib/rduser.h +++ b/lib/rduser.h @@ -59,6 +59,8 @@ class RDUser void setModifyCarts(bool priv) const; bool editAudio() const; void setEditAudio(bool priv) const; + bool webgetLogin() const; + void setWebgetLogin(bool priv) const; bool createLog() const; void setCreateLog(bool priv) const; bool deleteLog() const; diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index fc2708e3..5be715ac 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -341,6 +341,7 @@ bool CreateDb(QString name,QString pwd,RDConfig *config) "DELETE_CARTS_PRIV enum('N','Y') not null default 'N',"+ "MODIFY_CARTS_PRIV enum('N','Y') not null default 'N',"+ "EDIT_AUDIO_PRIV enum('N','Y') not null default 'N',"+ + "WEBGET_LOGIN_PRIV enum('N','Y') not null default 'N',"+ "ASSIGN_CART_PRIV enum('N','Y') not null default 'N',"+ "CREATE_LOG_PRIV enum('N','Y') not null default 'N',"+ "DELETE_LOG_PRIV enum('N','Y') not null default 'N',"+ @@ -8034,6 +8035,13 @@ int UpdateDb(int ver,RDConfig *config) delete q; } + if(ver<277) { + sql=QString("alter table USERS ")+ + "add column WEBGET_LOGIN_PRIV enum('N','Y') not null default 'N' "+ + "after EDIT_AUDIO_PRIV"; + q=new RDSqlQuery(sql,false); + delete q; + } // // Maintainer's Note: diff --git a/rdadmin/edit_user.cpp b/rdadmin/edit_user.cpp index d2e6a547..d383a7f1 100644 --- a/rdadmin/edit_user.cpp +++ b/rdadmin/edit_user.cpp @@ -200,7 +200,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // Production Group Priviledges // user_prod_group=new QButtonGroup(tr("Production Rights"),this); - user_prod_group->setGeometry(10,225,355,85); + user_prod_group->setGeometry(10,225,355,106); user_prod_group->setFont(font); user_create_carts_button=new QCheckBox(user_prod_group); @@ -235,6 +235,15 @@ EditUser::EditUser(const QString &user,QWidget *parent) user_edit_audio_label->setFont(small_font); user_edit_audio_label->setAlignment(AlignLeft|ShowPrefix); + user_webget_login_button=new QCheckBox(user_prod_group); + user_webget_login_button->setGeometry(10,84,15,15); + user_webget_login_label= + new QLabel(user_webget_login_button,tr("Allow &WebGet Login"), + user_prod_group); + user_webget_login_label->setGeometry(30,83,150,19); + user_webget_login_label->setFont(small_font); + user_webget_login_label->setAlignment(AlignLeft|ShowPrefix); + user_edit_catches_button=new QCheckBox(user_prod_group); user_edit_catches_button->setGeometry(172,42,15,15); user_edit_catches_label= @@ -257,7 +266,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // Traffic Group Priviledges // user_traffic_group=new QButtonGroup(tr("Traffic Rights"),this); - user_traffic_group->setGeometry(10,320,355,66); + user_traffic_group->setGeometry(10,341,355,66); user_traffic_group->setFont(font); user_create_log_button=new QCheckBox(user_traffic_group); @@ -298,7 +307,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // OnAir Group Priviledges // user_onair_group=new QButtonGroup(tr("OnAir Rights"),this); - user_onair_group->setGeometry(10,396,355,85); + user_onair_group->setGeometry(10,417,355,85); user_onair_group->setFont(font); user_playout_log_button=new QCheckBox(user_onair_group); @@ -348,7 +357,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // Podcast Group Priviledges // user_podcast_group=new QButtonGroup(tr("Podcasting Rights"),this); - user_podcast_group->setGeometry(10,491,355,66); + user_podcast_group->setGeometry(10,512,355,66); user_podcast_group->setFont(font); user_add_podcast_button=new QCheckBox(user_podcast_group); @@ -389,7 +398,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // Group Permissions Button // user_assign_perms_button=new QPushButton(this); - user_assign_perms_button->setGeometry(10,561,sizeHint().width()/3-20,50); + user_assign_perms_button->setGeometry(10,582,sizeHint().width()/3-20,50); user_assign_perms_button->setFont(font); user_assign_perms_button->setText(tr("Group\nPermissions")); connect(user_assign_perms_button,SIGNAL(clicked()),this,SLOT(groupsData())); @@ -398,7 +407,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // Services Permissions Button // user_assign_svcs_button=new QPushButton(this); - user_assign_svcs_button->setGeometry(sizeHint().width()/3+10,561,sizeHint().width()/3-20,50); + user_assign_svcs_button->setGeometry(sizeHint().width()/3+10,582,sizeHint().width()/3-20,50); user_assign_svcs_button->setFont(font); user_assign_svcs_button->setText(tr("Service\nPermissions")); connect(user_assign_svcs_button,SIGNAL(clicked()),this,SLOT(servicesData())); @@ -408,7 +417,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) // user_assign_feeds_button=new QPushButton(this); user_assign_feeds_button-> - setGeometry(2*sizeHint().width()/3+10,561,sizeHint().width()/3-20,50); + setGeometry(2*sizeHint().width()/3+10,582,sizeHint().width()/3-20,50); user_assign_feeds_button->setFont(font); user_assign_feeds_button->setText(tr("Podcast Feed\nPermissions")); connect(user_assign_feeds_button,SIGNAL(clicked()),this,SLOT(feedsData())); @@ -457,6 +466,7 @@ EditUser::EditUser(const QString &user,QWidget *parent) user_edit_audio_button->setChecked(user_user->editAudio()); user_edit_catches_button->setChecked(user_user->editCatches()); user_voicetrack_log_button->setChecked(user_user->voicetrackLog()); + user_webget_login_button->setChecked(user_user->webgetLogin()); user_create_log_button->setChecked(user_user->createLog()); user_delete_log_button->setChecked(user_user->deleteLog()); @@ -499,7 +509,7 @@ EditUser::~EditUser() QSize EditUser::sizeHint() const { - return QSize(375,681); + return QSize(375,702); } @@ -572,6 +582,7 @@ void EditUser::adminToggledData(bool state) user_modify_template_button->setDisabled(state); user_edit_catches_button->setDisabled(state); user_voicetrack_log_button->setDisabled(state); + user_webget_login_button->setDisabled(state); user_add_podcast_button->setDisabled(state); user_edit_podcast_button->setDisabled(state); user_delete_podcast_button->setDisabled(state); @@ -593,6 +604,7 @@ void EditUser::adminToggledData(bool state) user_edit_podcast_label->setDisabled(state); user_delete_podcast_label->setDisabled(state); user_voicetrack_log_label->setDisabled(state); + user_webget_login_label->setDisabled(state); user_assign_perms_button->setDisabled(state); user_assign_feeds_button->setDisabled(state); } @@ -614,6 +626,7 @@ void EditUser::okData() user_user->setEditAudio(user_edit_audio_button->isChecked()); user_user->setEditCatches(user_edit_catches_button->isChecked()); user_user->setVoicetrackLog(user_voicetrack_log_button->isChecked()); + user_user->setWebgetLogin(user_webget_login_button->isChecked()); user_user->setCreateLog(user_create_log_button->isChecked()); user_user->setDeleteLog(user_delete_log_button->isChecked()); user_user->setDeleteRec(user_delete_rec_button->isChecked()); diff --git a/rdadmin/edit_user.h b/rdadmin/edit_user.h index e370ab19..d8ad9b7c 100644 --- a/rdadmin/edit_user.h +++ b/rdadmin/edit_user.h @@ -77,6 +77,7 @@ class EditUser : public QDialog QCheckBox *user_modify_carts_button; QCheckBox *user_edit_audio_button; QCheckBox *user_voicetrack_log_button; + QCheckBox *user_webget_login_button; QCheckBox *user_create_log_button; QCheckBox *user_delete_log_button; QCheckBox *user_delete_rec_button; @@ -111,6 +112,7 @@ class EditUser : public QDialog QLabel *user_edit_podcast_label; QLabel *user_delete_podcast_label; QLabel *user_voicetrack_log_label; + QLabel *user_webget_login_label; RDUser *user_user; }; diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 935fb605..1ef0ea76 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -4291,6 +4291,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index 80a730cf..9fe8cc61 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -4240,6 +4240,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index 9fc77a5f..7cb3ea32 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -4236,6 +4236,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index 9ae5c63c..211b2567 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -3784,6 +3784,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index 8197d46a..54f5155c 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -4210,6 +4210,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index 8197d46a..54f5155c 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -4210,6 +4210,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index cc546432..2802b14e 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -4233,6 +4233,10 @@ Permissions Allow Web Login + + Allow &WebGet Login + + EditUserPerms diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index 81682246..ce86c8e4 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -263,6 +263,10 @@ void MainObject::Revert(int schema) const case 276: Revert276(); break; + + case 277: + Revert277(); + break; } } @@ -842,6 +846,19 @@ void MainObject::Revert276() const } +void MainObject::Revert277() const +{ + QString sql; + RDSqlQuery *q; + + sql=QString("alter table USERS drop column WEBGET_LOGIN_PRIV"); + q=new RDSqlQuery(sql,false); + delete q; + + SetVersion(276); +} + + int MainObject::GetVersion() const { QString sql; @@ -888,7 +905,7 @@ int MainObject::MapSchema(const QString &ver) version_map["2.17"]=268; version_map["2.18"]=272; version_map["2.19"]=275; - version_map["2.20"]=276; + version_map["2.20"]=277; // // Normalize String diff --git a/utils/rdrevert/rdrevert.h b/utils/rdrevert/rdrevert.h index dfe1e7cd..44031f3b 100644 --- a/utils/rdrevert/rdrevert.h +++ b/utils/rdrevert/rdrevert.h @@ -72,6 +72,7 @@ class MainObject : public QObject void Revert274() const; void Revert275() const; void Revert276() const; + void Revert277() const; int GetVersion() const; void SetVersion(int schema) const; int MapSchema(const QString &ver);