* @details Calls this function to change Modes.
* @since_tizen 6.0
* @privlevel public
- * @privilege %http://tizen.org/privilege/network.get
- * @privilege %http://tizen.org/privilege/internet
+ * @privilege according to privileges of the \p name Mode
* @param[in] Handle of modes server
* @param[in] Mode name to change
* @return @c 0 on success,
* @details If the mode is not applied bebore, it will be ingnored.
* @since_tizen 6.0
* @privlevel public
- * @privilege %http://tizen.org/privilege/network.get
- * @privilege %http://tizen.org/privilege/internet
+ * @privilege according to privileges of the \p name Mode
* @param[in] Handle of modes server
* @param[in] Mode name to undo
* @return @c 0 on success,
* @brief Register Mode.
* @details Calls this function to register mode.
* @since_tizen 6.0
- * @privlevel public
+ * @privlevel platform
+ * @privilege http://tizen.org/privilege/systemsettings.admin
* @param[in] Handle of modes server
* @param[in] Mode handle to register
* @return @c 0 on success,
* @brief Adds callback for recognizing the changed of mode.
* @details Sets a function to be called when the mode is changed.
* @since_tizen 6.0
- *
+ * @privlevel public
* @param[in] Handle of modes server
* @param[in] cb The callback function to invoke
* @param[in] user_data The user data to pass to the function
* @brief stop recognizing the changed of mode.
* @details Removes the subscription of changes with given ID.
* @since_tizen 6.0
- *
+ * @privlevel public
* @param[in] handle Handle of modes API
* @param[in] id The ID of the subscription of changes
*
* @brief Get mode list
* @details Calls this function to get mode list
* @since_tizen 6.0
- * @privlevel public
+ * @privlevel platform
+ * @privilege http://tizen.org/privilege/systemsettings.admin
* @param[in] Handle of modes server
* @param[in] GList for mode list
- *
* @return 0 on success, otherwise a negative error value.
* @retval #MODES_ERROR_NONE Successful
* @retval #MODES_ERROR_INVALID_PARAMETER Invalid parameter
return MODES_ERROR_NONE;
}
+int ModeManager::undoMode(const string &modeName, ClientPrivilege &priv)
+{
+ Mode mode;
+ int ret = careTaker.popMode(modeName, mode);
+ if (MODES_ERROR_NONE != ret) {
+ ERR("popMode() Fail(%d)", ret);
+ return ret;
+ }
+
+ ret = priv.check(mode);
+ if (MODES_ERROR_NONE != ret) {
+ ERR("priv.check() Fail(%d)", ret);
+ return ret;
+ }
+
+ mode.undo();
+ notifyObservers(modeName, ModeObserver::OFF);
+
+ return MODES_ERROR_NONE;
+}
+
int ModeManager::undoMode(const string &modeName)
{
Mode mode;
ERR("popMode() Fail(%d)", ret);
return ret;
}
+
mode.undo();
notifyObservers(modeName, ModeObserver::OFF);
int applyMode(const std::string &modeName, ClientPrivilege &priv, bool isTest);
int registerMode(const Mode &mode);
int undoMode(const std::string &modeName);
+ int undoMode(const std::string &modeName, ClientPrivilege &priv);
std::list<std::tuple<std::string, int, int>> getModes();
void attachObserver(ModeObserver *obs);
void detachObserver(ModeObserver *obs);
<deny own="@DBUS_INTERFACE@"/>
<deny send_destination="@DBUS_INTERFACE@" send_type="method_call"/>
- <allow send_destination="@DBUS_INTERFACE@" send_path="/org/tizen/modes/dbus" send_interface="@DBUS_INTERFACE@"/>
+ <allow send_destination="@DBUS_INTERFACE@" send_path="/org/tizen/modes/dbus" send_interface="@DBUS_INTERFACE@"/>
+ <check send_destination="@DBUS_INTERFACE@" send_interface="@DBUS_INTERFACE@" send_member="registerMode" privilege="http://tizen.org/privilege/systemsettings.admin"/>
+ <check send_destination="@DBUS_INTERFACE@" send_interface="@DBUS_INTERFACE@" send_member="getModes" privilege="http://tizen.org/privilege/systemsettings.admin"/>
<deny send_type="signal" send_path="/org/tizen/modes/dbus" send_interface="@DBUS_INTERFACE@"/>
<allow send_destination="@DBUS_INTERFACE@" send_interface="org.freedesktop.DBus.Properties" send_member="GetAll"/>