Have users have upload permissions. Make sure upload tab only shows up then.

This commit is contained in:
Kevin Whitaker
2017-02-22 20:40:09 -05:00
parent e1dbdf997e
commit 8db237cddd
4 changed files with 5 additions and 2 deletions

View File

@@ -46,7 +46,6 @@ WebInterface::WebInterface(const Wt::WEnvironment& env) : Wt::WApplication(env)
root()->addWidget(priv_int->loginUI); root()->addWidget(priv_int->loginUI);
priv_int->loginUI->animateShow(Wt::WAnimation(Wt::WAnimation::AnimationEffect::SlideInFromTop)); priv_int->loginUI->animateShow(Wt::WAnimation(Wt::WAnimation::AnimationEffect::SlideInFromTop));
priv_int->loginUI->checkSessionValidity(); priv_int->loginUI->checkSessionValidity();
if(currentUser.isAdmin) priv_int->playerUI->mainDisplay->addTab(priv_int->playerUI->adminPane, "Admin", Wt::WTabWidget::LazyLoading);
notificationSlot.setJavaScript(getNotificationJs("")); notificationSlot.setJavaScript(getNotificationJs(""));
} }
@@ -70,6 +69,8 @@ void WebInterface::loginCompleted()
priv_int->playerUI->updateDetailsFromServer(GroovePlayerMgr::getInstance()->currentTrack); priv_int->playerUI->updateDetailsFromServer(GroovePlayerMgr::getInstance()->currentTrack);
priv_int->playerUI->updateVoteableTracksFromServer(GroovePlayerMgr::getInstance()->currentVoteBatch); priv_int->playerUI->updateVoteableTracksFromServer(GroovePlayerMgr::getInstance()->currentVoteBatch);
priv_int->playerUI->updateVoteTrackState(); priv_int->playerUI->updateVoteTrackState();
if(currentUser.canUpload) priv_int->playerUI->mainDisplay->addTab(priv_int->playerUI->uploadPane, "Upload Track", Wt::WTabWidget::LazyLoading);
if(currentUser.isAdmin) priv_int->playerUI->mainDisplay->addTab(priv_int->playerUI->adminPane, "Admin", Wt::WTabWidget::LazyLoading);
} }
void WebInterface::playPauseActionFromServer(User userPausing, bool pause) void WebInterface::playPauseActionFromServer(User userPausing, bool pause)

View File

@@ -31,6 +31,7 @@ public:
std::string passwordSalt; std::string passwordSalt;
bool isDisabled; bool isDisabled;
bool isAdmin; bool isAdmin;
bool canUpload;
std::string loginCookieToken; std::string loginCookieToken;
template<class Action> template<class Action>
@@ -41,6 +42,7 @@ public:
Wt::Dbo::field(a, passwordSalt, "salt"); Wt::Dbo::field(a, passwordSalt, "salt");
Wt::Dbo::field(a, isDisabled, "disabled"); Wt::Dbo::field(a, isDisabled, "disabled");
Wt::Dbo::field(a, isAdmin, "admin"); Wt::Dbo::field(a, isAdmin, "admin");
Wt::Dbo::field(a, canUpload, "canupload");
Wt::Dbo::field(a, loginCookieToken, "cookie"); Wt::Dbo::field(a, loginCookieToken, "cookie");
} }
}; };

View File

@@ -131,6 +131,7 @@ void LoginInterface::createUser(Wt::Dbo::Session* session, std::string username,
user->isAdmin = isAdmin; user->isAdmin = isAdmin;
user->username = username; user->username = username;
user->isDisabled = false; user->isDisabled = false;
user->canUpload = true;
user->passwordSalt = Wt::WRandom::generateId(); user->passwordSalt = Wt::WRandom::generateId();
user->passwordHash = hasher.compute(rawPassword, user->passwordSalt); user->passwordHash = hasher.compute(rawPassword, user->passwordSalt);
user->loginCookieToken = Wt::WRandom::generateId(); user->loginCookieToken = Wt::WRandom::generateId();

View File

@@ -125,7 +125,6 @@ PlayerInterface::PlayerInterface(WebInterface* app)
interfaceLayout->addWidget(mainDisplay); interfaceLayout->addWidget(mainDisplay);
mainDisplay->addTab(voteMetaContainer,"Up Next",Wt::WTabWidget::PreLoading); mainDisplay->addTab(voteMetaContainer,"Up Next",Wt::WTabWidget::PreLoading);
mainDisplay->addTab(requestPane, "Make Request", Wt::WTabWidget::LazyLoading); mainDisplay->addTab(requestPane, "Make Request", Wt::WTabWidget::LazyLoading);
mainDisplay->addTab(uploadPane, "Upload Track", Wt::WTabWidget::LazyLoading);
playControlWidget->addStyleClass("panel"); playControlWidget->addStyleClass("panel");
playControlWidget->addStyleClass("panel-default"); playControlWidget->addStyleClass("panel-default");
playControlWidget->decorationStyle().setBackgroundColor(Wt::WColor("gainsboro")); playControlWidget->decorationStyle().setBackgroundColor(Wt::WColor("gainsboro"));