Merge lp:~gerboland/unity-mir/clean-up-authorisation into lp:unity-mir

Proposed by Gerry Boland
Status: Merged
Approved by: Michał Sawicz
Approved revision: 36
Merged at revision: 38
Proposed branch: lp:~gerboland/unity-mir/clean-up-authorisation
Merge into: lp:unity-mir
Diff against target: 93 lines (+14/-17)
4 files modified
src/modules/Unity/ApplicationManager/application_manager.cpp (+6/-5)
src/modules/Unity/ApplicationManager/application_manager.h (+2/-2)
src/unity-mir/sessionauthorizer.cpp (+4/-8)
src/unity-mir/sessionauthorizer.h (+2/-2)
To merge this branch: bzr merge lp:~gerboland/unity-mir/clean-up-authorisation
Reviewer Review Type Date Requested Status
Michał Sawicz Approve
PS Jenkins bot (community) continuous-integration Approve
Albert Astals Cid Pending
Review via email: mp+180189@code.launchpad.net

Commit message

Clean up session authorization code, emit message on denial

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Michał Sawicz (saviq) wrote :

29 + LOG("ApplicationManager::authorizedSessionName REJECTED connection from app with pid %lld", pid);

Should be authorizedSession.

=====

73 + Q_EMIT requestAuthorizationForSession(pid, authorized); // needs to block until authorizedName returned

Doesn't return authorizedName anymore, does it?

review: Needs Fixing
35. By Gerry Boland

Update comments to reflect method name change

36. By Gerry Boland

Update comment to reflect parameter name and type change

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Michał Sawicz (saviq) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/modules/Unity/ApplicationManager/application_manager.cpp'
--- src/modules/Unity/ApplicationManager/application_manager.cpp 2013-08-09 13:16:13 +0000
+++ src/modules/Unity/ApplicationManager/application_manager.cpp 2013-08-15 15:15:37 +0000
@@ -72,7 +72,7 @@
72 = std::dynamic_pointer_cast<SessionAuthorizer>(m_mirServer->the_session_authorizer());72 = std::dynamic_pointer_cast<SessionAuthorizer>(m_mirServer->the_session_authorizer());
7373
74 QObject::connect(sessionAuthorizer.get(), &SessionAuthorizer::requestAuthorizationForSession,74 QObject::connect(sessionAuthorizer.get(), &SessionAuthorizer::requestAuthorizationForSession,
75 this, &ApplicationManager::authorizedSessionName, Qt::BlockingQueuedConnection);75 this, &ApplicationManager::authorizedSession, Qt::BlockingQueuedConnection);
7676
77 // we use random numbers, so seed the generator77 // we use random numbers, so seed the generator
78 qsrand(QTime::currentTime().msec());78 qsrand(QTime::currentTime().msec());
@@ -235,16 +235,17 @@
235235
236/************************************* Mir-side methods *************************************/236/************************************* Mir-side methods *************************************/
237237
238void ApplicationManager::authorizedSessionName(const quint64 pid, QString& authorizedName)238void ApplicationManager::authorizedSession(const quint64 pid, bool &authorized)
239{239{
240 DLOG("ApplicationManager::authorizedSessionName (this=%p, pid=%lld)", this, pid);240 DLOG("ApplicationManager::authorizedSession (this=%p, pid=%lld)", this, pid);
241 Application* application = m_mainStageApplications->getApplicationWithPid(pid);241 Application* application = m_mainStageApplications->getApplicationWithPid(pid);
242 if (application) {242 if (application) {
243 QString name = application->appId() + QString::number(qrand());243 QString name = application->appId() + QString::number(qrand());
244 application->setSessionName(name);244 application->setSessionName(name);
245 authorizedName = name;245 authorized = true;
246 } else {246 } else {
247 authorizedName = QString(); // i.e. do not authorize //TODO(greyback) dislike247 LOG("ApplicationManager::authorizedSession REJECTED connection from app with pid %lld", pid);
248 authorized = false;
248 }249 }
249}250}
250251
251252
=== modified file 'src/modules/Unity/ApplicationManager/application_manager.h'
--- src/modules/Unity/ApplicationManager/application_manager.h 2013-08-09 13:16:13 +0000
+++ src/modules/Unity/ApplicationManager/application_manager.h 2013-08-15 15:15:37 +0000
@@ -85,14 +85,14 @@
85 Q_INVOKABLE Application* startProcess(QString desktopFile, ExecFlags flags = NoFlag, QStringList arguments = QStringList());85 Q_INVOKABLE Application* startProcess(QString desktopFile, ExecFlags flags = NoFlag, QStringList arguments = QStringList());
86 Q_INVOKABLE void stopProcess(Application* application);86 Q_INVOKABLE void stopProcess(Application* application);
8787
88 void authorizedSessionName(const quint64 pid, QString &authorizedName);
89
90Q_SIGNALS:88Q_SIGNALS:
91 void mainStageApplicationsChanged();89 void mainStageApplicationsChanged();
92 void mainStageFocusedApplicationChanged();90 void mainStageFocusedApplicationChanged();
93 void focusRequested(FavoriteApplication favoriteApplication);91 void focusRequested(FavoriteApplication favoriteApplication);
9492
95public Q_SLOTS:93public Q_SLOTS:
94 void authorizedSession(const quint64 pid, bool &authorized);
95
96 void sessionStarting(std::shared_ptr<mir::shell::ApplicationSession> const& session);96 void sessionStarting(std::shared_ptr<mir::shell::ApplicationSession> const& session);
97 void sessionStopping(std::shared_ptr<mir::shell::ApplicationSession> const& session);97 void sessionStopping(std::shared_ptr<mir::shell::ApplicationSession> const& session);
98 void sessionFocused(std::shared_ptr<mir::shell::ApplicationSession> const& session);98 void sessionFocused(std::shared_ptr<mir::shell::ApplicationSession> const& session);
9999
=== modified file 'src/unity-mir/sessionauthorizer.cpp'
--- src/unity-mir/sessionauthorizer.cpp 2013-08-09 13:16:13 +0000
+++ src/unity-mir/sessionauthorizer.cpp 2013-08-15 15:15:37 +0000
@@ -30,14 +30,10 @@
30bool SessionAuthorizer::connection_is_allowed(pid_t pid)30bool SessionAuthorizer::connection_is_allowed(pid_t pid)
31{31{
32 DLOG("SessionAuthorizer::connection_is_allowed (this=%p, pid=%d", this, pid);32 DLOG("SessionAuthorizer::connection_is_allowed (this=%p, pid=%d", this, pid);
3333 bool authorized = true;
34 QString authorizedName;34
35 Q_EMIT requestAuthorizationForSession(pid, authorizedName); // needs to block until authorizedName returned35 Q_EMIT requestAuthorizationForSession(pid, authorized); // needs to block until authorized value returned
3636 return authorized;
37 if (!authorizedName.isNull()) {
38 return true;
39 }
40 return false;
41}37}
4238
43bool SessionAuthorizer::configure_display_is_allowed(pid_t pid)39bool SessionAuthorizer::configure_display_is_allowed(pid_t pid)
4440
=== modified file 'src/unity-mir/sessionauthorizer.h'
--- src/unity-mir/sessionauthorizer.h 2013-08-09 13:16:13 +0000
+++ src/unity-mir/sessionauthorizer.h 2013-08-15 15:15:37 +0000
@@ -39,8 +39,8 @@
39 virtual bool configure_display_is_allowed(pid_t pid) override;39 virtual bool configure_display_is_allowed(pid_t pid) override;
4040
41Q_SIGNALS:41Q_SIGNALS:
42 // needs to be blocked queued signal which returns value for authorizedName42 // needs to be blocked queued signal which returns value for authorized
43 void requestAuthorizationForSession(const quint64& pid, QString& authorizedName);43 void requestAuthorizationForSession(const quint64 &pid, bool &authorized);
44};44};
4545
46#endif // SESSIONAUTHORIZER_H46#endif // SESSIONAUTHORIZER_H

Subscribers

People subscribed via source and target branches