mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 12:43:16 -04:00
Description: granturipermmsion
Sig:SIG_ApplicationFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: gongyuechen <gongyuechen@huawei.com>
This commit is contained in:
@@ -126,7 +126,6 @@ private:
|
||||
ThrowError(engine, AbilityErrorCode::ERROR_CODE_INVALID_PARAM);
|
||||
return engine.CreateUndefined();
|
||||
}
|
||||
|
||||
AsyncTask::CompleteCallback complete =
|
||||
[uriStr, bundleName](NativeEngine& engine, AsyncTask& task, int32_t status) {
|
||||
Uri uri(uriStr);
|
||||
@@ -135,13 +134,13 @@ private:
|
||||
if (errCode == ERR_OK) {
|
||||
task.ResolveWithNoError(engine, engine.CreateUndefined());
|
||||
} else if (errCode == AAFwk::CHECK_PERMISSION_FAILED) {
|
||||
task.Reject(engine, CreateNoPermissionError(engine, "ohos.permission.PROXY_AUTHORIZATION_URI"));
|
||||
task.Reject(engine, CreateNoPermissionError(engine,
|
||||
"Do not have permission ohos.permission.PROXY_AUTHORIZATION_URI"));
|
||||
} else {
|
||||
task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_INTERNAL_ERROR,
|
||||
"Internal Error."));
|
||||
}
|
||||
};
|
||||
|
||||
NativeValue* lastParam = (info.argc == argCountThree) ? info.argv[argCountTwo] : nullptr;
|
||||
NativeValue* result = nullptr;
|
||||
AsyncTask::Schedule("JsUriPermMgr::OnRevokeUriPermission",
|
||||
|
||||
@@ -42,7 +42,6 @@ void UriPermissionManagerClient::RevokeUriPermission(const Security::AccessToken
|
||||
if (uriPermMgr) {
|
||||
return uriPermMgr->RevokeUriPermission(tokenId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int UriPermissionManagerClient::RevokeUriPermissionManually(const Uri &uri, const std::string bundleName)
|
||||
|
||||
@@ -1200,7 +1200,6 @@ void AbilityRecord::Terminate(const Closure &task)
|
||||
// earlier than above actions.
|
||||
currentState_ = AbilityState::TERMINATING;
|
||||
lifecycleDeal_->Terminate(want_, lifeCycleStateInfo_);
|
||||
RevokeUriPermission();
|
||||
}
|
||||
|
||||
void AbilityRecord::ConnectAbility()
|
||||
|
||||
@@ -55,8 +55,7 @@ private:
|
||||
void ClearSMProxy();
|
||||
int GrantUriPermissionImpl(const Uri &uri, unsigned int flag,
|
||||
Security::AccessToken::AccessTokenID fromTokenId,
|
||||
Security::AccessToken::AccessTokenID targetTokenId,
|
||||
int autoremove);
|
||||
Security::AccessToken::AccessTokenID targetTokenId, int autoremove);
|
||||
Security::AccessToken::AccessTokenID GetTokenIdByBundleName(const std::string bundleName);
|
||||
|
||||
class BMSOrSMDeathRecipient : public IRemoteObject::DeathRecipient {
|
||||
|
||||
@@ -62,7 +62,7 @@ int UriPermissionManagerStubImpl::GrantUriPermission(const Uri &uri, unsigned in
|
||||
tmpFlag = Want::FLAG_AUTH_READ_URI_PERMISSION;
|
||||
}
|
||||
auto&& scheme = uri_inner.GetScheme();
|
||||
if (scheme != "file" && scheme != "dataShare") {
|
||||
if (scheme != "file") {
|
||||
HILOG_WARN("only support file or dataShare uri.");
|
||||
return INNER_ERR;
|
||||
}
|
||||
@@ -118,6 +118,14 @@ int UriPermissionManagerStubImpl::GrantUriPermissionImpl(const Uri &uri, unsigne
|
||||
void UriPermissionManagerStubImpl::RevokeUriPermission(const TokenId tokenId)
|
||||
{
|
||||
HILOG_DEBUG("Start to remove uri permission.");
|
||||
auto callerTokenId = IPCSkeleton::GetCallingTokenID();
|
||||
Security::AccessToken::NativeTokenInfo nativeInfo;
|
||||
Security::AccessToken::AccessTokenKit::GetNativeTokenInfo(callerTokenId, nativeInfo);
|
||||
HILOG_DEBUG("callerprocessName : %{public}s", nativeInfo.processName.c_str());
|
||||
if (nativeInfo.processName != "fodundation") {
|
||||
HILOG_ERROR("RevokeUriPermission can only be called by foundation");
|
||||
return;
|
||||
}
|
||||
std::vector<std::string> uriList;
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(mutex_);
|
||||
@@ -148,7 +156,6 @@ void UriPermissionManagerStubImpl::RevokeUriPermission(const TokenId tokenId)
|
||||
if (!uriList.empty()) {
|
||||
storageMgrProxy->DeleteShareFile(tokenId, uriList);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int UriPermissionManagerStubImpl::RevokeUriPermissionManually(const Uri &uri, const std::string bundleName)
|
||||
|
||||
Reference in New Issue
Block a user