mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-29 07:02:34 +02:00
2020-11-24 Fred Gleason <fredg@paravelsystems.com>
* Removed the 'USERS.ADMIN_USERS_PRIV' field from the database. * Added a 'USERS.ADMIN_RSS_PRIV' field to the database. * Incremented the database version to 346. * Added 'RDUser:adminRss()' and 'RDUser::setAdminRss()' methods. * Added an 'Administer RSS Feeds' checkbox to the 'Administrative Rights' section of the 'User' dialog in rdadmin(1). Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
parent
82a368fdca
commit
57f2917ceb
@ -20638,3 +20638,10 @@
|
||||
2020-11-24 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Added 'E-Mail Address', 'Phone Number' and 'Local Auth' columns
|
||||
to the 'Users' list in the 'Rivendell User List' dialog in rdadmin(1).
|
||||
2020-11-24 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Removed the 'USERS.ADMIN_USERS_PRIV' field from the database.
|
||||
* Added a 'USERS.ADMIN_RSS_PRIV' field to the database.
|
||||
* Incremented the database version to 346.
|
||||
* Added 'RDUser:adminRss()' and 'RDUser::setAdminRss()' methods.
|
||||
* Added an 'Administer RSS Feeds' checkbox to the 'Administrative
|
||||
Rights' section of the 'User' dialog in rdadmin(1).
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 28 KiB |
Binary file not shown.
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 49 KiB |
@ -16,6 +16,7 @@ ENABLE_WEB enum('N','Y')
|
||||
LOCAL_AUTH enum('N','Y')
|
||||
PAM_SERVICE varchar(32)
|
||||
ADMIN_CONFIG_PRIV enum('N','Y')
|
||||
ADMIN_RSS_PRIV enum('N','Y')
|
||||
CREATE_CARTS_PRIV enum('N','Y')
|
||||
DELETE_CARTS_PRIV enum('N','Y')
|
||||
MODIFY_CARTS_PRIV enum('N','Y')
|
||||
|
BIN
icons/rss.png
BIN
icons/rss.png
Binary file not shown.
Before Width: | Height: | Size: 706 B After Width: | Height: | Size: 922 B |
291
icons/rss.xpm
291
icons/rss.xpm
@ -1,115 +1,178 @@
|
||||
/* XPM */
|
||||
const static char * rss_xpm[] = {
|
||||
"32 32 80 1",
|
||||
" c None",
|
||||
". c #FEFEFF",
|
||||
"+ c #F6F6FF",
|
||||
"@ c #F7F7FF",
|
||||
"# c #F5F5FF",
|
||||
"$ c #F4F4FF",
|
||||
"% c #F3F3FF",
|
||||
"& c #F2F2FF",
|
||||
"* c #0000F9",
|
||||
"= c #0101F9",
|
||||
"- c #0202F9",
|
||||
"; c #E3E3FF",
|
||||
"> c #FAFAFF",
|
||||
", c #FFFFFF",
|
||||
"' c #1B1BF9",
|
||||
") c #0202F8",
|
||||
"! c #1616F9",
|
||||
"~ c #5353FA",
|
||||
"{ c #E2E2FD",
|
||||
"] c #A3A3FC",
|
||||
"^ c #F6F6FE",
|
||||
"/ c #5656FA",
|
||||
"( c #4C4CFA",
|
||||
"_ c #9898FC",
|
||||
": c #2626F9",
|
||||
"< c #F9F9FF",
|
||||
"[ c #7272FB",
|
||||
"} c #4747FA",
|
||||
"| c #FCFCFE",
|
||||
"1 c #DDDDFD",
|
||||
"2 c #8B8BFB",
|
||||
"3 c #9292FB",
|
||||
"4 c #0F0FF8",
|
||||
"5 c #F5F5FE",
|
||||
"6 c #F1F1FE",
|
||||
"7 c #0B0BF8",
|
||||
"8 c #9C9CFC",
|
||||
"9 c #6363FA",
|
||||
"0 c #3434F9",
|
||||
"a c #DFDFFD",
|
||||
"b c #5252FA",
|
||||
"c c #1515F8",
|
||||
"d c #0404F8",
|
||||
"e c #1010F8",
|
||||
"f c #2D2DF9",
|
||||
"g c #DCDCFD",
|
||||
"h c #F8F8FF",
|
||||
"i c #3232F9",
|
||||
"j c #C2C2FD",
|
||||
"k c #CBCBFD",
|
||||
"l c #5D5DFA",
|
||||
"m c #D2D2FD",
|
||||
"n c #EBEBFE",
|
||||
"o c #0707F8",
|
||||
"p c #F4F4FE",
|
||||
"q c #0303F8",
|
||||
"r c #1F1FF9",
|
||||
"s c #7070FB",
|
||||
"t c #B4B4FC",
|
||||
"u c #F7F7FE",
|
||||
"v c #8080FB",
|
||||
"w c #1D1DF9",
|
||||
"x c #D3D3FD",
|
||||
"y c #CECEFD",
|
||||
"z c #7979FB",
|
||||
"A c #2F2FF9",
|
||||
"B c #5959FA",
|
||||
"C c #F0F0FE",
|
||||
"D c #4242FA",
|
||||
"E c #B1B1FC",
|
||||
"F c #E8E8FD",
|
||||
"G c #5454FA",
|
||||
"H c #8F8FFB",
|
||||
"I c #4949FA",
|
||||
"J c #0A0AF8",
|
||||
"K c #0808F8",
|
||||
"L c #2525F9",
|
||||
"M c #8282FB",
|
||||
"N c #FDFDFE",
|
||||
"O c #EBEBFF",
|
||||
".+@@@++++#####$$$$%%%%%&&%%%%%%&",
|
||||
"$*======================------*;",
|
||||
">*,,,,,,,,,,,,,,,,,,,,,,,,,,,,*$",
|
||||
">*,,,,,,,,,,,,,,,,,,,,,,,,,,,,*$",
|
||||
">*,,'**)!~{,,,,,,,,,,,,,,,,,,,*$",
|
||||
">*,,'*]^/*(,,,,,,,,,,,,,,,,,,,*$",
|
||||
">*,,'*],_*:,,,,,,,,,,,,,,,,,,,*$",
|
||||
"<*,,'*]^/*[,,,,,,,,,,,,,,,,,,,*$",
|
||||
"<*,,'****}|,,,,,,,,,,,,,,,,,,,*$",
|
||||
"<*,,'*]1'*2,,,,,,,,,,,,,,,,,,,*$",
|
||||
"<*,,'*],3*45,,,,,,,,,,,,,,,,,,*$",
|
||||
"<*,,'*],67*8,,,,,,,,,,,,,,,,,,*$",
|
||||
"<*,,'*],,9*0,abcdefg,,,,,,,,,,*$",
|
||||
"h*,,,,,,,,,,,i)j5klm,,,,,,,,,,*$",
|
||||
"h*,,,,,,,,,,n*o6,,,,,,,,,,,,,,*$",
|
||||
"h*,,,,,,,,,,pq*rstu,,,,,,,,,,,*$",
|
||||
"h*,,,,,,,,,,,v****wx,,,,,,,,,,*%",
|
||||
"h*,,,,,,,,,,,,yzA**B,,,,,,,,,,*$",
|
||||
"h*,,,,,,,,,,,,,,,[*(,,,,,,,,,,*$",
|
||||
"h*,,,,,,,,,,CDEFCG*H,abcdefg,,*$",
|
||||
"@*,,,,,,,,,,^IrJKLMN,i)j5klm,,*$",
|
||||
"@*,,,,,,,,,,,,,,,,,,n*o6,,,,,,*#",
|
||||
"@*,,,,,,,,,,,,,,,,,,pq*rstu,,,*#",
|
||||
"@*,,,,,,,,,,,,,,,,,,,v****wx,,*#",
|
||||
"@*,,,,,,,,,,,,,,,,,,,,yzA**B,,*#",
|
||||
"@*,,,,,,,,,,,,,,,,,,,,,,,[*(,,*#",
|
||||
"+*,,,,,,,,,,,,,,,,,,CDEFCG*H,,*#",
|
||||
"+*,,,,,,,,,,,,,,,,,,^IrJKLMN,,*#",
|
||||
"+*,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#",
|
||||
"+*,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#",
|
||||
"+******************************O",
|
||||
",#####+++++################$$###"};
|
||||
static const char * rss_xpm[] = {
|
||||
"18 18 157 2",
|
||||
" c None",
|
||||
". c #DB742C",
|
||||
"+ c #E47E36",
|
||||
"@ c #E68239",
|
||||
"# c #E7833A",
|
||||
"$ c #E7843A",
|
||||
"% c #E8853A",
|
||||
"& c #E8863B",
|
||||
"* c #E9873B",
|
||||
"= c #E9883B",
|
||||
"- c #EA893B",
|
||||
"; c #EA8A3B",
|
||||
"> c #EB8B3C",
|
||||
", c #E78639",
|
||||
"' c #DE772C",
|
||||
") c #E6833A",
|
||||
"! c #E57732",
|
||||
"~ c #E5732E",
|
||||
"{ c #E7782F",
|
||||
"] c #EA7C31",
|
||||
"^ c #EB8032",
|
||||
"/ c #ED8433",
|
||||
"( c #EF8734",
|
||||
"_ c #F18B34",
|
||||
": c #F38E35",
|
||||
"< c #F49236",
|
||||
"[ c #F69537",
|
||||
"} c #F79738",
|
||||
"| c #F99A39",
|
||||
"1 c #F99C3D",
|
||||
"2 c #E98B3B",
|
||||
"3 c #DB772C",
|
||||
"4 c #ED9B65",
|
||||
"5 c #EE9457",
|
||||
"6 c #EC8941",
|
||||
"7 c #FA9C39",
|
||||
"8 c #FB9E3A",
|
||||
"9 c #F7983C",
|
||||
"0 c #DE762B",
|
||||
"a c #E37D37",
|
||||
"b c #FDF3EC",
|
||||
"c c #FFFFFF",
|
||||
"d c #FFFFFE",
|
||||
"e c #FCE6D5",
|
||||
"f c #F8C295",
|
||||
"g c #F49746",
|
||||
"h c #F89838",
|
||||
"i c #F59237",
|
||||
"j c #E68338",
|
||||
"k c #E58038",
|
||||
"l c #FEF9F4",
|
||||
"m c #FAC998",
|
||||
"n c #F79A3D",
|
||||
"o c #F28C35",
|
||||
"p c #E88639",
|
||||
"q c #E68238",
|
||||
"r c #F09753",
|
||||
"s c #F3A86C",
|
||||
"t c #F7C192",
|
||||
"u c #FCE5D1",
|
||||
"v c #FEE8D1",
|
||||
"w c #FAA54A",
|
||||
"x c #EF8634",
|
||||
"y c #E78439",
|
||||
"z c #E78339",
|
||||
"A c #F1964D",
|
||||
"B c #F2903C",
|
||||
"C c #F8AC63",
|
||||
"D c #FDE7D1",
|
||||
"E c #FEF3E6",
|
||||
"F c #F9A24B",
|
||||
"G c #EC7F32",
|
||||
"H c #FEF4EC",
|
||||
"I c #FFFEFD",
|
||||
"J c #FDE7D3",
|
||||
"K c #FAC089",
|
||||
"L c #F7993C",
|
||||
"M c #F99B3B",
|
||||
"N c #FDD1A3",
|
||||
"O c #FDE7D2",
|
||||
"P c #F28F3B",
|
||||
"Q c #E97A30",
|
||||
"R c #E68138",
|
||||
"S c #E88539",
|
||||
"T c #FEEEDE",
|
||||
"U c #FBAB57",
|
||||
"V c #FCD0A4",
|
||||
"W c #F7C49C",
|
||||
"X c #E7752F",
|
||||
"Y c #E57F38",
|
||||
"Z c #F6AB64",
|
||||
"` c #FAC189",
|
||||
" . c #FDE7D0",
|
||||
".. c #FFF9F2",
|
||||
"+. c #F9A958",
|
||||
"@. c #F59339",
|
||||
"#. c #FCE2CC",
|
||||
"$. c #FEF9F6",
|
||||
"%. c #EB8744",
|
||||
"&. c #E4702E",
|
||||
"*. c #E47E37",
|
||||
"=. c #E98739",
|
||||
"-. c #FCC080",
|
||||
";. c #FFFCF9",
|
||||
">. c #FEEFE1",
|
||||
",. c #F29D5B",
|
||||
"'. c #F4BD9B",
|
||||
"). c #E26C2D",
|
||||
"!. c #E47D37",
|
||||
"~. c #E9883A",
|
||||
"{. c #FBBC7B",
|
||||
"]. c #FBAF5E",
|
||||
"^. c #FABC7D",
|
||||
"/. c #F6BB8D",
|
||||
"(. c #F9DBC7",
|
||||
"_. c #FBE7DD",
|
||||
":. c #E0672C",
|
||||
"<. c #E37C37",
|
||||
"[. c #EA8A3A",
|
||||
"}. c #FDDCBB",
|
||||
"|. c #FAAF64",
|
||||
"1. c #FBE0C8",
|
||||
"2. c #FCE8DB",
|
||||
"3. c #F1AE85",
|
||||
"4. c #E47946",
|
||||
"5. c #DD632B",
|
||||
"6. c #E37B37",
|
||||
"7. c #FEF0E1",
|
||||
"8. c #F9BE89",
|
||||
"9. c #F5B27D",
|
||||
"0. c #E98142",
|
||||
"a. c #EA8F5B",
|
||||
"b. c #E58A5F",
|
||||
"c. c #DC602A",
|
||||
"d. c #E27A36",
|
||||
"e. c #FCBE7C",
|
||||
"f. c #FEF5EB",
|
||||
"g. c #FDE4CE",
|
||||
"h. c #F39342",
|
||||
"i. c #F09759",
|
||||
"j. c #EA8D59",
|
||||
"k. c #E57C44",
|
||||
"l. c #E89774",
|
||||
"m. c #DA5D29",
|
||||
"n. c #E27936",
|
||||
"o. c #DD762C",
|
||||
"p. c #DD6530",
|
||||
"q. c #DC752C",
|
||||
"r. c #E37D39",
|
||||
"s. c #DE762D",
|
||||
"t. c #E78438",
|
||||
"u. c #E7823A",
|
||||
"v. c #E68139",
|
||||
"w. c #E58039",
|
||||
"x. c #E57E39",
|
||||
"y. c #E47D38",
|
||||
"z. c #E37C38",
|
||||
" . + @ # $ % & * = - ; > , ' ",
|
||||
" ) ! ~ { ] ^ / ( _ : < [ } | 1 2 ",
|
||||
"3 ! ~ 4 5 6 / ( _ : < [ } | 7 8 9 0 ",
|
||||
"a ~ { b c d e f g < [ } | 7 8 h i j ",
|
||||
"k { ] b c c c c l m n | 7 8 h i o p ",
|
||||
"q ] ^ r s t u d c c v w 8 h i o x y ",
|
||||
"z ^ / A B : < C D c c E F i o x G q ",
|
||||
"y / ( H I J K L M N c c O P x G Q R ",
|
||||
"S ( _ H c c c T U 8 V c c W G Q X Y ",
|
||||
"p _ : Z ` .c c ..+.@.#.c $.%.X &.*.",
|
||||
"=.: < [ } | -.;.c >.P ,.I c '.&.).!.",
|
||||
"~.< [ n {.].8 ^.c c /.G (.c _.).:.<.",
|
||||
"[.[ } }.c I |.i 1.c 2.Q 3.c c 4.5.6.",
|
||||
"[.} | 7.c c 8.o 9.c c 0.a.c c b.c.d.",
|
||||
", | 7 e.f.g.h.x i.c c j.k.c c l.m.n.",
|
||||
"o.1 8 h i o x G Q X &.).:.5.c.m.p.q.",
|
||||
" 2 9 i o x G Q X &.).:.5.c.m.p.r. ",
|
||||
" s.t.* % $ u.v.w.x.y.y.z.n.q. "};
|
||||
|
@ -24,7 +24,7 @@
|
||||
/*
|
||||
* Current Database Version
|
||||
*/
|
||||
#define RD_VERSION_DATABASE 345
|
||||
#define RD_VERSION_DATABASE 346
|
||||
|
||||
|
||||
#endif // DBVERSION_H
|
||||
|
@ -1724,7 +1724,7 @@ unsigned RDFeed::create(const QString &keyname,bool enable_users,
|
||||
//
|
||||
if(enable_users) {
|
||||
sql=QString("select LOGIN_NAME from USERS where ")+
|
||||
"(ADMIN_USERS_PRIV='N')&&(ADMIN_CONFIG_PRIV='N')";
|
||||
"(ADMIN_RSS_PRIV='N')&&(ADMIN_CONFIG_PRIV='N')";
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
sql=QString("insert into FEED_PERMS set ")+
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Abstract a Rivendell User.
|
||||
//
|
||||
// (C) Copyright 2002-2003,2016 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -248,6 +248,19 @@ void RDUser::setAdminConfig(bool priv) const
|
||||
}
|
||||
|
||||
|
||||
bool RDUser::adminRss() const
|
||||
{
|
||||
return RDBool(RDGetSqlValue("USERS","LOGIN_NAME",user_name,
|
||||
"ADMIN_RSS_PRIV").toString());
|
||||
}
|
||||
|
||||
|
||||
void RDUser::setAdminRss(bool priv) const
|
||||
{
|
||||
SetRow("ADMIN_RSS_PRIV",priv);
|
||||
}
|
||||
|
||||
|
||||
bool RDUser::createCarts() const
|
||||
{
|
||||
return RDBool(RDGetSqlValue("USERS","LOGIN_NAME",user_name,
|
||||
|
@ -55,6 +55,8 @@ class RDUser
|
||||
void setWebapiAuthTimeout(int sec) const;
|
||||
bool adminConfig() const;
|
||||
void setAdminConfig(bool priv) const;
|
||||
bool adminRss() const;
|
||||
void setAdminRss(bool priv) const;
|
||||
bool createCarts() const;
|
||||
void setCreateCarts(bool priv) const;
|
||||
bool deleteCarts() const;
|
||||
|
@ -166,15 +166,27 @@ EditUser::EditUser(const QString &user,QWidget *parent)
|
||||
user_admin_config_button=new QCheckBox(user_admin_group);
|
||||
user_admin_config_button->setGeometry(10,21,15,15);
|
||||
connect(user_admin_config_button,SIGNAL(toggled(bool)),
|
||||
this,SLOT(adminToggledData(bool)));
|
||||
QLabel *user_admin_config_label=
|
||||
this,SLOT(adminConfigToggledData(bool)));
|
||||
user_admin_config_label=
|
||||
new QLabel(user_admin_config_button,tr("Administer S&ystem"),
|
||||
user_admin_group);
|
||||
user_admin_config_label->setGeometry(192,21,150,19);
|
||||
// user_admin_config_label->setGeometry(192,21,150,19);
|
||||
user_admin_config_label->setGeometry(30,21,150,19);
|
||||
user_admin_config_label->setFont(subLabelFont());
|
||||
user_admin_config_label->setAlignment(Qt::AlignLeft);
|
||||
|
||||
user_admin_rss_button=new QCheckBox(user_admin_group);
|
||||
user_admin_rss_button->setGeometry(172,21,15,15);
|
||||
connect(user_admin_rss_button,SIGNAL(toggled(bool)),
|
||||
this,SLOT(adminRssToggledData(bool)));
|
||||
user_admin_rss_label=
|
||||
new QLabel(user_admin_rss_button,tr("Administer RSS Feeds"),
|
||||
user_admin_group);
|
||||
user_admin_rss_label->setGeometry(192,21,150,19);
|
||||
// user_admin_rss_label->setGeometry(30,21,150,19);
|
||||
user_admin_rss_label->setFont(subLabelFont());
|
||||
user_admin_rss_label->setAlignment(Qt::AlignLeft);
|
||||
|
||||
//
|
||||
// Production Group Priviledges
|
||||
//
|
||||
@ -437,31 +449,37 @@ EditUser::EditUser(const QString &user,QWidget *parent)
|
||||
user_web_box->setChecked(user_user->enableWeb());
|
||||
if(user_user->adminConfig()) {
|
||||
user_admin_config_button->setChecked(true);
|
||||
adminToggledData(true);
|
||||
adminConfigToggledData(true);
|
||||
}
|
||||
else {
|
||||
user_create_carts_button->setChecked(user_user->createCarts());
|
||||
user_delete_carts_button->setChecked(user_user->deleteCarts());
|
||||
user_modify_carts_button->setChecked(user_user->modifyCarts());
|
||||
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());
|
||||
if(user_user->adminRss()) {
|
||||
user_admin_rss_button->setChecked(true);
|
||||
adminRssToggledData(true);
|
||||
}
|
||||
else {
|
||||
user_create_carts_button->setChecked(user_user->createCarts());
|
||||
user_delete_carts_button->setChecked(user_user->deleteCarts());
|
||||
user_modify_carts_button->setChecked(user_user->modifyCarts());
|
||||
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());
|
||||
user_delete_rec_button->setChecked(user_user->deleteRec());
|
||||
user_create_log_button->setChecked(user_user->createLog());
|
||||
user_delete_log_button->setChecked(user_user->deleteLog());
|
||||
user_delete_rec_button->setChecked(user_user->deleteRec());
|
||||
|
||||
user_playout_log_button->setChecked(user_user->playoutLog());
|
||||
user_arrange_log_button->setChecked(user_user->arrangeLog());
|
||||
user_addto_log_button->setChecked(user_user->addtoLog());
|
||||
user_removefrom_log_button->setChecked(user_user->removefromLog());
|
||||
user_config_panels_button->setChecked(user_user->configPanels());
|
||||
user_modify_template_button->setChecked(user_user->modifyTemplate());
|
||||
user_playout_log_button->setChecked(user_user->playoutLog());
|
||||
user_arrange_log_button->setChecked(user_user->arrangeLog());
|
||||
user_addto_log_button->setChecked(user_user->addtoLog());
|
||||
user_removefrom_log_button->setChecked(user_user->removefromLog());
|
||||
user_config_panels_button->setChecked(user_user->configPanels());
|
||||
user_modify_template_button->setChecked(user_user->modifyTemplate());
|
||||
|
||||
user_add_podcast_button->setChecked(user_user->addPodcast());
|
||||
user_edit_podcast_button->setChecked(user_user->editPodcast());
|
||||
user_delete_podcast_button->setChecked(user_user->deletePodcast());
|
||||
user_add_podcast_button->setChecked(user_user->addPodcast());
|
||||
user_edit_podcast_button->setChecked(user_user->editPodcast());
|
||||
user_delete_podcast_button->setChecked(user_user->deletePodcast());
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
@ -544,7 +562,23 @@ void EditUser::feedsData()
|
||||
}
|
||||
|
||||
|
||||
void EditUser::adminToggledData(bool state)
|
||||
void EditUser::adminConfigToggledData(bool state)
|
||||
{
|
||||
user_admin_rss_button->setDisabled(state);
|
||||
user_admin_rss_label->setDisabled(state);
|
||||
adminToggled(state);
|
||||
}
|
||||
|
||||
|
||||
void EditUser::adminRssToggledData(bool state)
|
||||
{
|
||||
user_admin_config_button->setDisabled(state);
|
||||
user_admin_config_label->setDisabled(state);
|
||||
adminToggled(state);
|
||||
}
|
||||
|
||||
|
||||
void EditUser::adminToggled(bool state)
|
||||
{
|
||||
user_web_box->setDisabled(state);
|
||||
user_web_label->setDisabled(state);
|
||||
@ -587,6 +621,7 @@ void EditUser::adminToggledData(bool state)
|
||||
user_voicetrack_log_label->setDisabled(state);
|
||||
user_webget_login_label->setDisabled(state);
|
||||
user_assign_perms_button->setDisabled(state);
|
||||
user_assign_svcs_button->setDisabled(state);
|
||||
user_assign_feeds_button->setDisabled(state);
|
||||
}
|
||||
|
||||
@ -602,6 +637,7 @@ void EditUser::okData()
|
||||
user_user->setWebapiAuthTimeout(user_webapi_auth_spin->value());
|
||||
user_user->setEnableWeb(user_web_box->isChecked());
|
||||
user_user->setAdminConfig(user_admin_config_button->isChecked());
|
||||
user_user->setAdminRss(user_admin_rss_button->isChecked());
|
||||
user_user->setCreateCarts(user_create_carts_button->isChecked());
|
||||
user_user->setDeleteCarts(user_delete_carts_button->isChecked());
|
||||
user_user->setModifyCarts(user_modify_carts_button->isChecked());
|
||||
|
@ -46,7 +46,9 @@ class EditUser : public RDDialog
|
||||
void groupsData();
|
||||
void servicesData();
|
||||
void feedsData();
|
||||
void adminToggledData(bool state);
|
||||
void adminConfigToggledData(bool state);
|
||||
void adminRssToggledData(bool state);
|
||||
void adminToggled(bool state);
|
||||
void okData();
|
||||
void cancelData();
|
||||
|
||||
@ -70,6 +72,7 @@ class EditUser : public RDDialog
|
||||
QGroupBox *user_onair_group;
|
||||
QGroupBox *user_podcast_group;
|
||||
QCheckBox *user_admin_config_button;
|
||||
QCheckBox *user_admin_rss_button;
|
||||
QCheckBox *user_create_carts_button;
|
||||
QCheckBox *user_delete_carts_button;
|
||||
QCheckBox *user_modify_carts_button;
|
||||
@ -92,6 +95,8 @@ class EditUser : public RDDialog
|
||||
QPushButton *user_assign_perms_button;
|
||||
QPushButton *user_assign_svcs_button;
|
||||
QPushButton *user_assign_feeds_button;
|
||||
QLabel *user_admin_config_label;
|
||||
QLabel *user_admin_rss_label;
|
||||
QLabel *user_create_carts_label;
|
||||
QLabel *user_delete_carts_label;
|
||||
QLabel *user_modify_carts_label;
|
||||
|
@ -35,6 +35,7 @@
|
||||
//
|
||||
#include "../icons/admin.xpm"
|
||||
#include "../icons/localuser.xpm"
|
||||
#include "../icons/rss.xpm"
|
||||
#include "../icons/user.xpm"
|
||||
|
||||
ListUsers::ListUsers(const QString &admin_name,QWidget *parent)
|
||||
@ -56,6 +57,7 @@ ListUsers::ListUsers(const QString &admin_name,QWidget *parent)
|
||||
//
|
||||
list_admin_map=new QPixmap(admin_xpm);
|
||||
list_localuser_map=new QPixmap(localuser_xpm);
|
||||
list_rss_map=new QPixmap(rss_xpm);
|
||||
list_user_map=new QPixmap(user_xpm);
|
||||
|
||||
//
|
||||
@ -288,12 +290,13 @@ void ListUsers::RefreshList()
|
||||
list_users_view->clear();
|
||||
sql=QString("select ")+
|
||||
"ADMIN_CONFIG_PRIV,"+ // 00
|
||||
"LOGIN_NAME,"+ // 01
|
||||
"FULL_NAME,"+ // 02
|
||||
"DESCRIPTION,"+ // 03
|
||||
"EMAIL_ADDRESS,"+ // 04
|
||||
"PHONE_NUMBER,"+ // 05
|
||||
"LOCAL_AUTH "+ // 06
|
||||
"ADMIN_RSS_PRIV,"+ // 01
|
||||
"LOGIN_NAME,"+ // 02
|
||||
"FULL_NAME,"+ // 03
|
||||
"DESCRIPTION,"+ // 04
|
||||
"EMAIL_ADDRESS,"+ // 05
|
||||
"PHONE_NUMBER,"+ // 06
|
||||
"LOCAL_AUTH "+ // 07
|
||||
"from USERS";
|
||||
q=new RDSqlQuery(sql);
|
||||
while (q->next()) {
|
||||
@ -302,19 +305,24 @@ void ListUsers::RefreshList()
|
||||
item->setPixmap(0,*list_admin_map);
|
||||
}
|
||||
else {
|
||||
if(q->value(6).toString()=="Y") {
|
||||
item->setPixmap(0,*list_localuser_map);
|
||||
if(q->value(1).toString()=="Y") {
|
||||
item->setPixmap(0,*list_rss_map);
|
||||
}
|
||||
else {
|
||||
item->setPixmap(0,*list_user_map);
|
||||
if(q->value(7).toString()=="Y") {
|
||||
item->setPixmap(0,*list_localuser_map);
|
||||
}
|
||||
else {
|
||||
item->setPixmap(0,*list_user_map);
|
||||
}
|
||||
}
|
||||
}
|
||||
item->setText(1,q->value(1).toString());
|
||||
item->setText(2,q->value(2).toString());
|
||||
item->setText(3,q->value(3).toString());
|
||||
item->setText(4,q->value(4).toString());
|
||||
item->setText(5,q->value(5).toString());
|
||||
item->setText(6,q->value(6).toString());
|
||||
item->setText(1,q->value(2).toString());
|
||||
item->setText(2,q->value(3).toString());
|
||||
item->setText(3,q->value(4).toString());
|
||||
item->setText(4,q->value(5).toString());
|
||||
item->setText(5,q->value(6).toString());
|
||||
item->setText(6,q->value(7).toString());
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
@ -327,11 +335,12 @@ void ListUsers::RefreshItem(RDListViewItem *item)
|
||||
|
||||
sql=QString("select ")+
|
||||
"ADMIN_CONFIG_PRIV,"+ // 00
|
||||
"FULL_NAME,"+ // 01
|
||||
"DESCRIPTION,"+ // 02
|
||||
"EMAIL_ADDRESS,"+ // 03
|
||||
"PHONE_NUMBER,"+ // 04
|
||||
"LOCAL_AUTH "+ // 05
|
||||
"ADMIN_RSS_PRIV,"+ // 01
|
||||
"FULL_NAME,"+ // 02
|
||||
"DESCRIPTION,"+ // 03
|
||||
"EMAIL_ADDRESS,"+ // 04
|
||||
"PHONE_NUMBER,"+ // 05
|
||||
"LOCAL_AUTH "+ // 06
|
||||
"from USERS where "+
|
||||
"LOGIN_NAME=\""+RDEscapeString(item->text(1))+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
@ -340,18 +349,23 @@ void ListUsers::RefreshItem(RDListViewItem *item)
|
||||
item->setPixmap(0,*list_admin_map);
|
||||
}
|
||||
else {
|
||||
if(q->value(3).toString()=="Y") {
|
||||
item->setPixmap(0,*list_localuser_map);
|
||||
if(q->value(1).toString()=="Y") {
|
||||
item->setPixmap(0,*list_rss_map);
|
||||
}
|
||||
else {
|
||||
item->setPixmap(0,*list_user_map);
|
||||
if(q->value(4).toString()=="Y") {
|
||||
item->setPixmap(0,*list_localuser_map);
|
||||
}
|
||||
else {
|
||||
item->setPixmap(0,*list_user_map);
|
||||
}
|
||||
}
|
||||
}
|
||||
item->setText(2,q->value(1).toString());
|
||||
item->setText(3,q->value(2).toString());
|
||||
item->setText(4,q->value(3).toString());
|
||||
item->setText(5,q->value(4).toString());
|
||||
item->setText(6,q->value(5).toString());
|
||||
item->setText(2,q->value(2).toString());
|
||||
item->setText(3,q->value(3).toString());
|
||||
item->setText(4,q->value(4).toString());
|
||||
item->setText(5,q->value(5).toString());
|
||||
item->setText(6,q->value(6).toString());
|
||||
}
|
||||
delete q;
|
||||
}
|
||||
|
@ -58,6 +58,7 @@ class ListUsers : public RDDialog
|
||||
QString list_admin_name;
|
||||
QPixmap *list_admin_map;
|
||||
QPixmap *list_localuser_map;
|
||||
QPixmap *list_rss_map;
|
||||
QPixmap *list_user_map;
|
||||
};
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Login widget for RDAdmin.
|
||||
//
|
||||
// (C) Copyright 2002-2019 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2020 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -20,17 +20,12 @@
|
||||
|
||||
#include <math.h>
|
||||
|
||||
#include <qdialog.h>
|
||||
#include <qstring.h>
|
||||
#include <qpushbutton.h>
|
||||
#include <qradiobutton.h>
|
||||
#include <qlineedit.h>
|
||||
#include <q3textedit.h>
|
||||
#include <qlabel.h>
|
||||
#include <qpainter.h>
|
||||
#include <qevent.h>
|
||||
#include <qmessagebox.h>
|
||||
#include <q3buttongroup.h>
|
||||
|
||||
#include <rdtextvalidator.h>
|
||||
|
||||
@ -39,15 +34,11 @@
|
||||
Login::Login(QString *username,QString *password,QWidget *parent)
|
||||
: RDDialog(parent)
|
||||
{
|
||||
setModal(true);
|
||||
|
||||
//
|
||||
// Fix the Window Size
|
||||
//
|
||||
setMinimumWidth(sizeHint().width());
|
||||
setMaximumWidth(sizeHint().width());
|
||||
setMinimumHeight(sizeHint().height());
|
||||
setMaximumHeight(sizeHint().height());
|
||||
setMinimumSize(sizeHint());
|
||||
setMaximumSize(sizeHint());
|
||||
|
||||
setWindowTitle("RDAdmin");
|
||||
login_name=username;
|
||||
|
@ -120,12 +120,14 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
exit(0);
|
||||
}
|
||||
rda->user()->setName(admin_username);
|
||||
bool config_priv=rda->user()->adminConfig();
|
||||
bool rss_priv=rda->user()->adminRss();
|
||||
if(!rda->user()->checkPassword(admin_password,false)) {
|
||||
QMessageBox::warning(this,"Login Failed","Login Failed!.\n");
|
||||
exit(1);
|
||||
}
|
||||
else {
|
||||
if(!rda->user()->adminConfig()) {
|
||||
if((!config_priv)&&(!rss_priv)) {
|
||||
QMessageBox::warning(this,tr("Insufficient Priviledges"),
|
||||
tr("This account has insufficient priviledges for this operation."));
|
||||
exit(1);
|
||||
@ -160,6 +162,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
users_button->setGeometry(10,50,80,60);
|
||||
users_button->setFont(buttonFont());
|
||||
users_button->setText(tr("Manage\n&Users"));
|
||||
users_button->setEnabled(config_priv);
|
||||
connect(users_button,SIGNAL(clicked()),this,SLOT(manageUsersData()));
|
||||
|
||||
//
|
||||
@ -169,6 +172,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
groups_button->setGeometry(10,120,80,60);
|
||||
groups_button->setFont(buttonFont());
|
||||
groups_button->setText(tr("Manage\n&Groups"));
|
||||
groups_button->setEnabled(config_priv);
|
||||
connect(groups_button,SIGNAL(clicked()),this,SLOT(manageGroupsData()));
|
||||
|
||||
//
|
||||
@ -178,6 +182,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
services_button->setGeometry(100,50,80,60);
|
||||
services_button->setFont(buttonFont());
|
||||
services_button->setText(tr("Manage\n&Services"));
|
||||
services_button->setEnabled(config_priv);
|
||||
connect(services_button,SIGNAL(clicked()),this,SLOT(manageServicesData()));
|
||||
|
||||
//
|
||||
@ -187,6 +192,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
stations_button->setGeometry(100,120,80,60);
|
||||
stations_button->setFont(buttonFont());
|
||||
stations_button->setText(tr("Manage\nHo&sts"));
|
||||
stations_button->setEnabled(config_priv);
|
||||
connect(stations_button,SIGNAL(clicked()),this,SLOT(manageStationsData()));
|
||||
|
||||
//
|
||||
@ -196,6 +202,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
reports_button->setGeometry(190,50,80,60);
|
||||
reports_button->setFont(buttonFont());
|
||||
reports_button->setText(tr("Manage\nR&eports"));
|
||||
reports_button->setEnabled(config_priv);
|
||||
connect(reports_button,SIGNAL(clicked()),this,SLOT(reportsData()));
|
||||
|
||||
//
|
||||
@ -205,6 +212,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
podcasts_button->setGeometry(280,50,80,60);
|
||||
podcasts_button->setFont(buttonFont());
|
||||
podcasts_button->setText(tr("Manage\n&Feeds"));
|
||||
podcasts_button->setEnabled(config_priv||rss_priv);
|
||||
connect(podcasts_button,SIGNAL(clicked()),this,SLOT(podcastsData()));
|
||||
|
||||
//
|
||||
@ -214,6 +222,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
system_button->setGeometry(190,120,80,60);
|
||||
system_button->setFont(buttonFont());
|
||||
system_button->setText(tr("System\nSettings"));
|
||||
system_button->setEnabled(config_priv);
|
||||
connect(system_button,SIGNAL(clicked()),this,SLOT(systemSettingsData()));
|
||||
|
||||
//
|
||||
@ -223,6 +232,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
schedcodes_button->setGeometry(280,120,80,60);
|
||||
schedcodes_button->setFont(buttonFont());
|
||||
schedcodes_button->setText(tr("Scheduler\nCodes"));
|
||||
schedcodes_button->setEnabled(config_priv);
|
||||
connect(schedcodes_button,SIGNAL(clicked()),this,SLOT(manageSchedCodes()));
|
||||
|
||||
//
|
||||
@ -232,6 +242,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
repl_button->setGeometry(100,190,80,60);
|
||||
repl_button->setFont(buttonFont());
|
||||
repl_button->setText(tr("Manage\nReplicators"));
|
||||
repl_button->setEnabled(config_priv);
|
||||
connect(repl_button,SIGNAL(clicked()),this,SLOT(manageReplicatorsData()));
|
||||
|
||||
//
|
||||
@ -241,6 +252,7 @@ MainWidget::MainWidget(RDConfig *config,RDWidget *parent)
|
||||
info_button->setGeometry(190,190,80,60);
|
||||
info_button->setFont(buttonFont());
|
||||
info_button->setText(tr("System\nInfo"));
|
||||
info_button->setEnabled(config_priv||rss_priv);
|
||||
connect(info_button,SIGNAL(clicked()),this,SLOT(systemInfoData()));
|
||||
|
||||
//
|
||||
|
@ -4775,6 +4775,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -4520,6 +4520,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -4716,6 +4716,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -3758,6 +3758,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -4425,6 +4425,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -4425,6 +4425,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -4500,6 +4500,10 @@ Permissions</source>
|
||||
<source>E-Mail Address</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Administer RSS Feeds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>EditUserPerms</name>
|
||||
|
@ -40,6 +40,22 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
// NEW SCHEMA REVERSIONS GO HERE...
|
||||
|
||||
|
||||
//
|
||||
// Revert 346
|
||||
//
|
||||
if((cur_schema==346)&&(set_schema<cur_schema)) {
|
||||
DropColumn("USERS","ADMIN_RSS_PRIV");
|
||||
|
||||
sql=QString("alter table USERS add column ")+
|
||||
"ADMIN_USERS_PRIV enum('N','Y') not null default 'N' "+
|
||||
"after ADMIN_CONFIG_PRIV";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
WriteSchemaVersion(--cur_schema);
|
||||
}
|
||||
|
||||
//
|
||||
// Revert 345
|
||||
//
|
||||
|
@ -161,7 +161,7 @@ void MainObject::InitializeSchemaMap() {
|
||||
global_version_map["3.2"]=311;
|
||||
global_version_map["3.3"]=314;
|
||||
global_version_map["3.4"]=317;
|
||||
global_version_map["3.5"]=345;
|
||||
global_version_map["3.5"]=346;
|
||||
}
|
||||
|
||||
|
||||
|
@ -10427,6 +10427,21 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
if((cur_schema<346)&&(set_schema>cur_schema)) {
|
||||
sql=QString("alter table USERS drop column ADMIN_USERS_PRIV");
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
sql=QString("alter table USERS add column ")+
|
||||
"ADMIN_RSS_PRIV enum('N','Y') not null default 'N' "+
|
||||
"after ADMIN_CONFIG_PRIV";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
WriteSchemaVersion(++cur_schema);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// NEW SCHEMA UPDATES GO HERE...
|
||||
|
Loading…
x
Reference in New Issue
Block a user