Enhance allow and add deny types 13/32413/11
authorAdam Malinowski <a.malinowsk2@partner.samsung.com>
Wed, 17 Dec 2014 18:44:49 +0000 (19:44 +0100)
committerAdam Malinowski <a.malinowsk2@partner.samsung.com>
Tue, 20 Jan 2015 11:59:33 +0000 (12:59 +0100)
Note: strings for buttons looks bad but there is no way to put
good looking captions because of limited size of window. Six buttons
with longer captions will not fit in window.

Change-Id: I71094d492fdf1163e06b974c837bf71d2f5435b2

src/agent/main/Agent.cpp
src/agent/po/en.po
src/agent/po/pl.po
src/agent/ui/AskUIInterface.h
src/agent/ui/AskUINotificationBackend.cpp

index 1855952..cf4c0b0 100644 (file)
@@ -251,14 +251,20 @@ void Agent::dismissUI(RequestId requestId) {
 
 Cynara::PolicyType Agent::UIResponseToPolicyType(UIResponseType responseType) {
     switch (responseType) {
-        case URT_YES:
+        case URT_YES_ONCE:
             return AskUser::SupportedTypes::Client::ALLOW_ONCE;
-        case URT_SESSION:
+        case URT_YES_SESSION:
             return AskUser::SupportedTypes::Client::ALLOW_PER_SESSION;
-        case URT_NO:
-            return Cynara::PredefinedPolicyType::DENY;
+        case URT_YES_LIFE:
+            return AskUser::SupportedTypes::Client::ALLOW_PER_LIFE;
+        case URT_NO_ONCE:
+            return AskUser::SupportedTypes::Client::DENY_ONCE;
+        case URT_NO_SESSION:
+            return AskUser::SupportedTypes::Client::DENY_PER_SESSION;
+        case URT_NO_LIFE:
+            return AskUser::SupportedTypes::Client::DENY_PER_LIFE;
         default:
-            return Cynara::PredefinedPolicyType::DENY;
+            return AskUser::SupportedTypes::Client::DENY_ONCE;
     }
 }
 
index e433e84..7eb103e 100644 (file)
@@ -1,14 +1,23 @@
 msgid "SID_PRIVILEGE_REQUEST_DIALOG_TITLE"
 msgstr "Privilege request"
 
-msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO"
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_ONCE"
 msgstr "No"
 
-msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES"
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_SESSION"
+msgstr "No session"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_LIFE"
+msgstr "No restart"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_ONCE"
 msgstr "Yes"
 
-msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_FOR_SESSION"
-msgstr "Yes, for current session"
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_SESSION"
+msgstr "Yes session"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_LIFE"
+msgstr "Yes restart"
 
 msgid "SID_PRIVILEGE_REQUEST_DIALOG_MESSAGE"
 msgstr "Application: %s, ran by user: %s, requested privilege:\n%s\nGrant access to privilege?"
index 37b41b4..82b865b 100644 (file)
@@ -1,14 +1,23 @@
 msgid "SID_PRIVILEGE_REQUEST_DIALOG_TITLE"
 msgstr "Żądanie dostępu"
 
-msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO"
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_ONCE"
 msgstr "Nie"
 
-msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES"
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_SESSION"
+msgstr "Nie sesja"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_LIFE"
+msgstr "Nie restart"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_ONCE"
 msgstr "Tak"
 
-msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_FOR_SESSION"
-msgstr "Tak, dla bieżącej sesji"
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_SESSION"
+msgstr "Tak sesja"
+
+msgid "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_LIFE"
+msgstr "Tak restart"
 
 msgid "SID_PRIVILEGE_REQUEST_DIALOG_MESSAGE"
 msgstr "Aplikacja: %s, uruchomiona przez użytkownika: %s, zażądała zasobu:\n %s\nUdzielić dostępu?"
index e00ba53..ee23e7f 100644 (file)
@@ -32,9 +32,12 @@ namespace AskUser {
 namespace Agent {
 
 typedef enum {
-    URT_YES,
-    URT_NO,
-    URT_SESSION,
+    URT_NO_ONCE,
+    URT_NO_SESSION,
+    URT_NO_LIFE,
+    URT_YES_ONCE,
+    URT_YES_SESSION,
+    URT_YES_LIFE,
     URT_TIMEOUT,
     URT_ERROR
 } UIResponseType;
index fd8e81c..8862a0a 100644 (file)
@@ -144,10 +144,13 @@ bool AskUINotificationBackend::createUI(const std::string &client, const std::st
         return false;
     }
 
-    ret = std::snprintf(tmpBuffer, sizeof(tmpBuffer), "%s,%s,%s",
-                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO"),
-                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES"),
-                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_FOR_SESSION"));
+    ret = snprintf(tmpBuffer, sizeof(tmpBuffer), "%s,%s,%s,%s,%s,%s",
+                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_ONCE"),
+                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_SESSION"),
+                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_NO_LIFE"),
+                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_ONCE"),
+                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_SESSION"),
+                   dgettext(PROJECT_NAME, "SID_PRIVILEGE_REQUEST_DIALOG_BUTTON_YES_LIFE"));
     if (ret < 0) {
         int erryes = errno;
         LOGE("sprintf failed with error: <" << strerror(erryes) << ">");
@@ -226,14 +229,14 @@ void AskUINotificationBackend::run() {
         UIResponseType response = URT_ERROR;
         if (ret == NOTIFICATION_ERROR_NONE) {
             if (buttonClicked) {
-                static UIResponseType responseType[] = {URT_NO, URT_YES, URT_SESSION};
+                static UIResponseType respType[] = {URT_NO_ONCE, URT_NO_SESSION, URT_NO_LIFE,
+                                                    URT_YES_ONCE, URT_YES_SESSION, URT_YES_LIFE};
                 LOGD("Got response from user: [" << buttonClicked << "]");
                 if (static_cast<unsigned int>(buttonClicked) >
-                                             sizeof(responseType) / sizeof(responseType[0])) {
+                                                        sizeof(respType) / sizeof(respType[0])) {
                     LOGE("Wrong code of response: [" << buttonClicked << "]");
-                    response = URT_NO;
                 } else {
-                    response = responseType[buttonClicked - 1];
+                    response = respType[buttonClicked - 1];
                 }
             } else {
                 LOGD("notification_wait_response, for request ID: [" << m_requestId <<
@@ -244,7 +247,7 @@ void AskUINotificationBackend::run() {
         m_responseCallback(m_requestId, response);
         LOGD("UI thread for request ID: [" << m_requestId << "] stopped execution");
     } catch (const std::exception &e) {
-        LOGC("Unexpected exception: <" << e.what() << ">");
+        LOGE("Unexpected exception: <" << e.what() << ">");
     } catch (...) {
         LOGE("Unexpected unknown exception caught!");
     }