} \
} while (0)
+#define CHECK_BACKWARD_COMPABILITY_PRIVILEGE_ACCESS(current_priv, prev_priv, out) \
+do { \
+ auto ret = common::tools::CheckAccess(current_priv); \
+ auto ret2 = common::tools::CheckAccess(prev_priv); \
+\
+ if (!ret && ret2) { \
+ ret = ret2; \
+ } \
+\
+ if (!ret) { \
+ common::tools::ReportError(ret, out); \
+ return; \
+ } \
+} while (0)
+
} // namespace tools
} // namespace common
isFlightMode : {value: data.isFligthMode, writable: false, enumerable: true},
imei : {
get: function() {
- xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_TELEPHONY);
+ xwalk.utils.checkBackwardCompabilityPrivilegeAccess(_PRIVILEGE_TELEPHONY,
+ _PRIVILEGE_SYSTEM);
return data.imei;
},
set: function() {},
},
msisdn : {
get: function() {
- xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_TELEPHONY);
+ xwalk.utils.checkBackwardCompabilityPrivilegeAccess(_PRIVILEGE_TELEPHONY,
+ _PRIVILEGE_SYSTEM);
return data.msisdn;
},
set: function() {},
},
msin : {
get: function() {
- xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_TELEPHONY);
+ xwalk.utils.checkBackwardCompabilityPrivilegeAccess(_PRIVILEGE_TELEPHONY,
+ _PRIVILEGE_SYSTEM);
return data.msin;
},
set: function() {},
}
};
+Utils.prototype.checkBackwardCompabilityPrivilegeAccess = function(current_privilege, previous_privilege) {
+ var result = native_.callSync('Utils_checkBackwardPrivilegePrivilegeAccess', {
+ current_privilege : _toString(current_privilege),
+ previous_privilege : _toString(previous_privilege),
+ });
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObject(result);
+ }
+};
+
/////////////////////////////////////////////////////////////////////////////
/** @constructor */
var Type = function() {};
RegisterSyncHandler(c, std::bind(&UtilsInstance::x, this, _1, _2));
REGISTER_SYNC("Utils_checkPrivilegeAccess", CheckPrivilegeAccess);
+ REGISTER_SYNC("Utils_checkBackwardCompabilityPrivilegeAccess", CheckBackwardCompabilityPrivilegeAccess);
#undef REGISTER_SYNC
#undef REGISTER_ASYNC
ReportSuccess(out);
}
+void UtilsInstance::CheckBackwardCompabilityPrivilegeAccess(const picojson::value& args,
+ picojson::object& out) {
+ const auto& current_priv = args.get("current_privilege").to_str();
+ const auto& prev_priv = args.get("previous_privilege").to_str();
+
+ CHECK_BACKWARD_COMPABILITY_PRIVILEGE_ACCESS(current_priv, prev_priv, &out);
+ ReportSuccess(out);
+}
+
} // namespace utils
} // namespace extension
private:
void CheckPrivilegeAccess(const picojson::value& args, picojson::object& out);
+ void CheckBackwardCompabilityPrivilegeAccess(const picojson::value& args, picojson::object& out);
};
} // namespace utils
} // namespace extension