Account.prototype.setExtendedData = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_WRITE);
-
var args = validator_.validateArgs(arguments, [
{ name: 'key', type: types_.STRING },
{ name: 'value', type: types_.STRING }
Account.prototype.getExtendedData = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
if (T_.isFunction(arguments[0]) || arguments.length > 1) {
var args = validator_.validateArgs(arguments, [
{
}
]);
- // TODO handling exceptions
-
- native_.call('Account_getExtendedData', { accountId: this.id },
+ var result = native_.call('Account_getExtendedData', { accountId: this.id },
function(result) {
- if (native_.isFailure(result)) {
- if(!T_.isNullOrUndefined(args.errorCallback)) {
- args.errorCallback(native_.getErrorObject(result));
- }
- } else {
- var data = native_.getResultObject(result);
- for (var i = 0; i < data.length; ++i) {
- Object.freeze(data[i]);
- }
- args.successCallback(native_.getResultObject(result));
+ if (native_.isFailure(result)) {
+ if(!T_.isNullOrUndefined(args.errorCallback)) {
+ args.errorCallback(native_.getErrorObject(result));
+ }
+ } else {
+ var data = native_.getResultObject(result);
+ for (var i = 0; i < data.length; ++i) {
+ Object.freeze(data[i]);
}
+ args.successCallback(native_.getResultObject(result));
+ }
}
);
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
+ }
} else {
var args = validator_.validateArgs(arguments, [
{ name: 'key', type: types_.STRING }
AccountManager.prototype.add = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_WRITE);
-
var args = validator_.validateArgs(arguments, [
{ name: 'account', type: types_.PLATFORM_OBJECT, values: Account }
]);
AccountManager.prototype.remove = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_WRITE);
-
var args = validator_.validateArgs(arguments, [
{ name: 'accountId', type: types_.UNSIGNED_LONG}
]);
AccountManager.prototype.update = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_WRITE);
-
var args = validator_.validateArgs(arguments, [
{ name: 'account', type: types_.PLATFORM_OBJECT, values: Account }
]);
AccountManager.prototype.getAccount = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
var args = validator_.validateArgs(arguments, [
{ name: 'accountId', type: types_.UNSIGNED_LONG }
]);
AccountManager.prototype.getAccounts = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
var args = validator_.validateArgs(arguments, [
{ name: 'successCallback', type: types_.FUNCTION, optional: false, nullable: false },
{ name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true },
{ name: 'applicationId', type: types_.STRING, optional: true, nullable: true }
]);
- // TODO handling exceptions
-
- native_.call('AccountManager_getAccounts',
+ var result = native_.call('AccountManager_getAccounts',
{
applicationId: args.applicationId
},
}
}
);
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
+ }
}
AccountManager.prototype.getProvider = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
var args = validator_.validateArgs(arguments, [
{ name: 'applicationId', type: types_.STRING }
]);
AccountManager.prototype.getProviders = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
var args = validator_.validateArgs(arguments, [
{ name: 'successCallback', type: types_.FUNCTION, optional: false, nullable: false },
{ name: 'errorCallback', type: types_.FUNCTION, optional: true, nullable: true },
{ name: 'capability', type: types_.STRING, optional: true, nullable: true }
]);
- // TODO handling exceptions
-
- native_.call( 'AccountManager_getProviders',
+ var result = native_.call( 'AccountManager_getProviders',
{
capability: args.capability
},
}
}
);
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
+ }
}
AccountManager.prototype.addAccountListener = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
var args = validator_.validateArgs(arguments, [
{ name: 'callback', type: types_.LISTENER, values: ['onadded', 'onremoved', 'onupdated'] }
]);
+ //checking privilege is done in C++ layer through _accountListeners.addListener()
return _accountListeners.addListener(args.callback);
}
AccountManager.prototype.removeAccountListener = function() {
- xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.ACCOUNT_READ);
-
var args = validator_.validateArgs(arguments, [
{ name: 'accountListenerId', type: types_.UNSIGNED_LONG }
]);
+ //checking privilege is done in C++ layer through _accountListeners.removeListener()
_accountListeners.removeListener(args.accountListenerId);
}
#include "common/logger.h"
#include "common/task-queue.h"
#include "common/platform_exception.h"
+#include "common/tools.h"
namespace extension {
namespace account {
using common::UnknownException;
using common::SecurityException;
+namespace {
+// The privileges that required in Account API
+const std::string kPrivilegeAccountRead =
+ "http://tizen.org/privilege/account.read";
+const std::string kPrivilegeAccountWrite =
+ "http://tizen.org/privilege/account.write";
+} // namespace
+
#define CHECK_EXIST(args, name, out) \
if (!args.contains(name)) {\
LogAndReportError(TypeMismatchException(name" is required argument"), out);\
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountWrite, &out);
+
CHECK_EXIST(args, "key", out)
CHECK_EXIST(args, "value", out)
CHECK_EXIST(args, "accountId", out)
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
CHECK_EXIST(args, "accountId", out)
CHECK_EXIST(args, "callbackId", out)
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
CHECK_EXIST(args, "key", out)
CHECK_EXIST(args, "accountId", out)
void AccountInstance::AccountManagerAdd(const picojson::value& args, picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountWrite, &out);
manager_->AddAccount(args, out);
}
void AccountInstance::AccountManagerRemove(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountWrite, &out);
manager_->RemoveAccount(args, out);
}
void AccountInstance::AccountManagerUpdate(const picojson::value& args,
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountWrite, &out);
manager_->UpdateAccount(args, out);
}
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
CHECK_EXIST(args, "accountId", out)
int account_id = static_cast<int>(args.get("accountId").get<double>());
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
CHECK_EXIST(args, "callbackId", out)
int callback_id = static_cast<int>(args.get("callbackId").get<double>());
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
std::string application_id = args.get("applicationId").get<std::string>();
LoggerD("application_id [%s]", application_id.c_str());
picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
CHECK_EXIST(args, "callbackId", out)
int callback_id = static_cast<int>(args.get("callbackId").get<double>());
void AccountInstance::AccountManagerAddAccountListener(
const picojson::value& args, picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
if (!subscribe_) {
LoggerD("Creating subscription");
const picojson::value& args, picojson::object& out) {
LoggerD("Enter");
+ CHECK_PRIVILEGE_ACCESS(kPrivilegeAccountRead, &out);
+
if (subscribe_) {
LoggerD("Removing subscription");