Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Global I18n Standard
提交
58c2a211
G
Global I18n Standard
项目概览
OpenHarmony
/
Global I18n Standard
大约 1 年 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Global I18n Standard
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
58c2a211
编写于
3月 22, 2022
作者:
S
sunyaozu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add interface permission
Signed-off-by:
N
sunyaozu
<
sunyaozu@huawei.com
>
上级
dce79938
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
1 deletion
+45
-1
bundle.json
bundle.json
+3
-1
frameworks/intl/BUILD.gn
frameworks/intl/BUILD.gn
+1
-0
frameworks/intl/include/locale_config.h
frameworks/intl/include/locale_config.h
+1
-0
frameworks/intl/src/locale_config.cpp
frameworks/intl/src/locale_config.cpp
+40
-0
未找到文件。
bundle.json
浏览文件 @
58c2a211
...
...
@@ -48,13 +48,15 @@
"ram"
:
""
,
"deps"
:
{
"components"
:
[
"ipc_core"
,
"syspara"
,
"utils"
,
"tel_core_service_api"
,
"libaccesstoken_sdk"
,
"libhilog"
,
"ace_napi"
,
"base"
,
"common"
"common"
],
"third_party"
:
[
"icu"
,
...
...
frameworks/intl/BUILD.gn
浏览文件 @
58c2a211
...
...
@@ -94,6 +94,7 @@ ohos_shared_library("intl_util") {
"//third_party/libxml2:xml2",
]
external_deps = [
"access_token:libaccesstoken_sdk",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
"startup_l2:syspara",
...
...
frameworks/intl/include/locale_config.h
浏览文件 @
58c2a211
...
...
@@ -96,6 +96,7 @@ private:
static
std
::
set
<
std
::
string
>
validHcTag
;
static
bool
listsInitialized
;
static
bool
InitializeLists
();
static
bool
CheckPermission
();
};
}
// namespace I18n
}
// namespace Global
...
...
frameworks/intl/src/locale_config.cpp
浏览文件 @
58c2a211
...
...
@@ -13,9 +13,12 @@
* limitations under the License.
*/
#include <regex>
#include "accesstoken_kit.h"
#ifdef TEL_CORE_SERVICE_EXISTS
#include "core_service_client.h"
#endif
#include "hilog/log.h"
#include "ipc_skeleton.h"
#include "libxml/parser.h"
#include "locale_info.h"
#include "localebuilder.h"
...
...
@@ -36,7 +39,9 @@ namespace OHOS {
namespace
Global
{
namespace
I18n
{
using
namespace
std
;
using
namespace
OHOS
::
HiviewDFX
;
static
constexpr
OHOS
::
HiviewDFX
::
HiLogLabel
LABEL
=
{
LOG_CORE
,
0xD001E00
,
"LocaleConfig"
};
const
char
*
LocaleConfig
::
LANGUAGE_KEY
=
"persist.sys.language"
;
const
char
*
LocaleConfig
::
LOCALE_KEY
=
"persist.sys.locale"
;
const
char
*
LocaleConfig
::
HOUR_KEY
=
"persist.sys.is24Hour"
;
...
...
@@ -340,8 +345,34 @@ string LocaleConfig::GetSystemLocale()
return
""
;
}
bool
LocaleConfig
::
CheckPermission
()
{
Security
::
AccessToken
::
AccessTokenID
callerToken
=
IPCSkeleton
::
GetCallingTokenID
();
int
result
=
Security
::
AccessToken
::
PermissionState
::
PERMISSION_GRANTED
;
if
(
Security
::
AccessToken
::
AccessTokenKit
::
GetTokenTypeFlag
(
callerToken
)
==
Security
::
AccessToken
::
ATokenTypeEnum
::
TOKEN_NATIVE
)
{
result
=
Security
::
AccessToken
::
AccessTokenKit
::
VerifyNativeToken
(
callerToken
,
"ohos.permission.UPDATE_CONFIGURATION"
);
}
else
if
(
Security
::
AccessToken
::
AccessTokenKit
::
GetTokenTypeFlag
(
callerToken
)
==
Security
::
AccessToken
::
ATokenTypeEnum
::
TOKEN_HAP
)
{
result
=
Security
::
AccessToken
::
AccessTokenKit
::
VerifyAccessToken
(
callerToken
,
"ohos.permission.UPDATE_CONFIGURATION"
);
}
else
{
HiLog
::
Info
(
LABEL
,
"Invlid tokenID"
);
return
false
;
}
if
(
result
!=
Security
::
AccessToken
::
PermissionState
::
PERMISSION_GRANTED
)
{
HiLog
::
Info
(
LABEL
,
"Verify permission failed"
);
return
false
;
}
return
true
;
}
bool
LocaleConfig
::
SetSystemLanguage
(
const
string
&
language
)
{
if
(
!
CheckPermission
())
{
return
false
;
}
if
(
!
IsValidTag
(
language
))
{
return
false
;
}
...
...
@@ -350,6 +381,9 @@ bool LocaleConfig::SetSystemLanguage(const string &language)
bool
LocaleConfig
::
SetSystemRegion
(
const
string
&
region
)
{
if
(
!
CheckPermission
())
{
return
false
;
}
if
(
!
IsValidRegion
(
region
))
{
return
false
;
}
...
...
@@ -379,6 +413,9 @@ bool LocaleConfig::SetSystemRegion(const string ®ion)
bool
LocaleConfig
::
SetSystemLocale
(
const
string
&
locale
)
{
if
(
!
CheckPermission
())
{
return
false
;
}
if
(
!
IsValidTag
(
locale
))
{
return
false
;
}
...
...
@@ -862,6 +899,9 @@ bool LocaleConfig::Is24HourClock()
bool
LocaleConfig
::
Set24HourClock
(
bool
option
)
{
if
(
!
CheckPermission
())
{
return
false
;
}
std
::
string
optionStr
=
""
;
if
(
option
)
{
optionStr
=
"true"
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录