Skip to content

Commit d8ce4da

Browse files
committed
feat: 新增脚本文件操作相关安全选项;
1 parent b7d0fcb commit d8ce4da

19 files changed

Lines changed: 183 additions & 46 deletions

3rdparty/angel-lsp

lang/en_US/winghex_en_US.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3115,57 +3115,67 @@
31153115
<translation>Allow execution of user repository scripts with admin</translation>
31163116
</message>
31173117
<message>
3118-
<location filename="../../src/settings/scriptsettingdialog.ui" line="76"/>
3118+
<location filename="../../src/settings/scriptsettingdialog.ui" line="58"/>
3119+
<source>ScriptFile overwritable</source>
3120+
<translation>Allow file to be overwritten with scripting</translation>
3121+
</message>
3122+
<message>
3123+
<location filename="../../src/settings/scriptsettingdialog.ui" line="65"/>
3124+
<source>ScriptFileSystem writable</source>
3125+
<translation>Allow files or directories to be removed with scripting</translation>
3126+
</message>
3127+
<message>
3128+
<location filename="../../src/settings/scriptsettingdialog.ui" line="90"/>
31193129
<source>Timeout</source>
31203130
<translation>Timeout</translation>
31213131
</message>
31223132
<message>
3123-
<location filename="../../src/settings/scriptsettingdialog.ui" line="102"/>
3133+
<location filename="../../src/settings/scriptsettingdialog.ui" line="116"/>
31243134
<source>(0 : unlimited)</source>
31253135
<translation>(0 : unlimited)</translation>
31263136
</message>
31273137
<message>
3128-
<location filename="../../src/settings/scriptsettingdialog.ui" line="128"/>
3138+
<location filename="../../src/settings/scriptsettingdialog.ui" line="142"/>
31293139
<source>DataBase</source>
31303140
<translation>Database</translation>
31313141
</message>
31323142
<message>
3133-
<location filename="../../src/settings/scriptsettingdialog.ui" line="148"/>
3143+
<location filename="../../src/settings/scriptsettingdialog.ui" line="162"/>
31343144
<source>Save</source>
31353145
<translation>Save</translation>
31363146
</message>
31373147
<message>
3138-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="161"/>
3148+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="169"/>
31393149
<source>[Empty]</source>
31403150
<translation>[Empty]</translation>
31413151
</message>
31423152
<message>
3143-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="176"/>
3153+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="184"/>
31443154
<source>SelectShow</source>
31453155
<translation>Show Selection</translation>
31463156
</message>
31473157
<message>
3148-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="181"/>
3158+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="189"/>
31493159
<source>SelectHide</source>
31503160
<translation>Hide Selection</translation>
31513161
</message>
31523162
<message>
3153-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="189"/>
3163+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="197"/>
31543164
<source>SelectAll</source>
31553165
<translation>Select all</translation>
31563166
</message>
31573167
<message>
3158-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="190"/>
3168+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="198"/>
31593169
<source>SelectClear</source>
31603170
<translation>Clear Selection</translation>
31613171
</message>
31623172
<message>
3163-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="194"/>
3173+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="202"/>
31643174
<source>DiscardChanges</source>
31653175
<translation>Discard changes</translation>
31663176
</message>
31673177
<message>
3168-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="200"/>
3178+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="208"/>
31693179
<source>Script</source>
31703180
<translation>Script</translation>
31713181
</message>
@@ -3902,7 +3912,7 @@
39023912
<context>
39033913
<name>SettingManager</name>
39043914
<message>
3905-
<location filename="../../src/class/settingmanager.cpp" line="387"/>
3915+
<location filename="../../src/class/settingmanager.cpp" line="416"/>
39063916
<source>ConfigUnableSave</source>
39073917
<translation>The program will be unable to save the configuration. Please check the permissions for the configuration file.</translation>
39083918
</message>

lang/zh_CN/winghex_zh_CN.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3100,37 +3100,37 @@
31003100
<context>
31013101
<name>ScriptSettingDialog</name>
31023102
<message>
3103-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="176"/>
3103+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="184"/>
31043104
<source>SelectShow</source>
31053105
<translation>显示所选</translation>
31063106
</message>
31073107
<message>
3108-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="181"/>
3108+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="189"/>
31093109
<source>SelectHide</source>
31103110
<translation>隐藏所选</translation>
31113111
</message>
31123112
<message>
3113-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="189"/>
3113+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="197"/>
31143114
<source>SelectAll</source>
31153115
<translation>全选</translation>
31163116
</message>
31173117
<message>
3118-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="190"/>
3118+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="198"/>
31193119
<source>SelectClear</source>
31203120
<translation>清空选择</translation>
31213121
</message>
31223122
<message>
3123-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="194"/>
3123+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="202"/>
31243124
<source>DiscardChanges</source>
31253125
<translation>丢弃修改</translation>
31263126
</message>
31273127
<message>
3128-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="200"/>
3128+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="208"/>
31293129
<source>Script</source>
31303130
<translation>脚本</translation>
31313131
</message>
31323132
<message>
3133-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="161"/>
3133+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="169"/>
31343134
<source>[Empty]</source>
31353135
<translation>[空]</translation>
31363136
</message>
@@ -3150,22 +3150,32 @@
31503150
<translation>允许在管理员权限下执行用户仓库脚本</translation>
31513151
</message>
31523152
<message>
3153-
<location filename="../../src/settings/scriptsettingdialog.ui" line="76"/>
3153+
<location filename="../../src/settings/scriptsettingdialog.ui" line="58"/>
3154+
<source>ScriptFile overwritable</source>
3155+
<translation>允许脚本覆写文件</translation>
3156+
</message>
3157+
<message>
3158+
<location filename="../../src/settings/scriptsettingdialog.ui" line="65"/>
3159+
<source>ScriptFileSystem writable</source>
3160+
<translation>允许脚本删除文件和文件夹</translation>
3161+
</message>
3162+
<message>
3163+
<location filename="../../src/settings/scriptsettingdialog.ui" line="90"/>
31543164
<source>Timeout</source>
31553165
<translation>超时</translation>
31563166
</message>
31573167
<message>
3158-
<location filename="../../src/settings/scriptsettingdialog.ui" line="102"/>
3168+
<location filename="../../src/settings/scriptsettingdialog.ui" line="116"/>
31593169
<source>(0 : unlimited)</source>
31603170
<translation>(0:无限制)</translation>
31613171
</message>
31623172
<message>
3163-
<location filename="../../src/settings/scriptsettingdialog.ui" line="128"/>
3173+
<location filename="../../src/settings/scriptsettingdialog.ui" line="142"/>
31643174
<source>DataBase</source>
31653175
<translation>仓库</translation>
31663176
</message>
31673177
<message>
3168-
<location filename="../../src/settings/scriptsettingdialog.ui" line="148"/>
3178+
<location filename="../../src/settings/scriptsettingdialog.ui" line="162"/>
31693179
<source>Save</source>
31703180
<translation>保存</translation>
31713181
</message>
@@ -3902,7 +3912,7 @@
39023912
<context>
39033913
<name>SettingManager</name>
39043914
<message>
3905-
<location filename="../../src/class/settingmanager.cpp" line="387"/>
3915+
<location filename="../../src/class/settingmanager.cpp" line="416"/>
39063916
<source>ConfigUnableSave</source>
39073917
<translation>程序将无法保存配置,请检查配置文件权限。</translation>
39083918
</message>

lang/zh_TW/winghex_zh_TW.ts

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3100,37 +3100,37 @@
31003100
<context>
31013101
<name>ScriptSettingDialog</name>
31023102
<message>
3103-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="176"/>
3103+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="184"/>
31043104
<source>SelectShow</source>
31053105
<translation>顯示所選</translation>
31063106
</message>
31073107
<message>
3108-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="181"/>
3108+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="189"/>
31093109
<source>SelectHide</source>
31103110
<translation>隱藏所選</translation>
31113111
</message>
31123112
<message>
3113-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="189"/>
3113+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="197"/>
31143114
<source>SelectAll</source>
31153115
<translation>全選</translation>
31163116
</message>
31173117
<message>
3118-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="190"/>
3118+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="198"/>
31193119
<source>SelectClear</source>
31203120
<translation>清空選擇</translation>
31213121
</message>
31223122
<message>
3123-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="194"/>
3123+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="202"/>
31243124
<source>DiscardChanges</source>
31253125
<translation>丟棄修改</translation>
31263126
</message>
31273127
<message>
3128-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="200"/>
3128+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="208"/>
31293129
<source>Script</source>
31303130
<translation>腳本</translation>
31313131
</message>
31323132
<message>
3133-
<location filename="../../src/settings/scriptsettingdialog.cpp" line="161"/>
3133+
<location filename="../../src/settings/scriptsettingdialog.cpp" line="169"/>
31343134
<source>[Empty]</source>
31353135
<translation>[空]</translation>
31363136
</message>
@@ -3150,22 +3150,32 @@
31503150
<translation>允許在管理員許可權下執行用戶倉庫腳本</translation>
31513151
</message>
31523152
<message>
3153-
<location filename="../../src/settings/scriptsettingdialog.ui" line="76"/>
3153+
<location filename="../../src/settings/scriptsettingdialog.ui" line="58"/>
3154+
<source>ScriptFile overwritable</source>
3155+
<translation>允許腳本覆寫檔</translation>
3156+
</message>
3157+
<message>
3158+
<location filename="../../src/settings/scriptsettingdialog.ui" line="65"/>
3159+
<source>ScriptFileSystem writable</source>
3160+
<translation>允許腳本刪除檔和文件夾</translation>
3161+
</message>
3162+
<message>
3163+
<location filename="../../src/settings/scriptsettingdialog.ui" line="90"/>
31543164
<source>Timeout</source>
31553165
<translation>超時</translation>
31563166
</message>
31573167
<message>
3158-
<location filename="../../src/settings/scriptsettingdialog.ui" line="102"/>
3168+
<location filename="../../src/settings/scriptsettingdialog.ui" line="116"/>
31593169
<source>(0 : unlimited)</source>
31603170
<translation>(0:無限制)</translation>
31613171
</message>
31623172
<message>
3163-
<location filename="../../src/settings/scriptsettingdialog.ui" line="128"/>
3173+
<location filename="../../src/settings/scriptsettingdialog.ui" line="142"/>
31643174
<source>DataBase</source>
31653175
<translation>倉庫</translation>
31663176
</message>
31673177
<message>
3168-
<location filename="../../src/settings/scriptsettingdialog.ui" line="148"/>
3178+
<location filename="../../src/settings/scriptsettingdialog.ui" line="162"/>
31693179
<source>Save</source>
31703180
<translation>保存</translation>
31713181
</message>
@@ -3902,7 +3912,7 @@
39023912
<context>
39033913
<name>SettingManager</name>
39043914
<message>
3905-
<location filename="../../src/class/settingmanager.cpp" line="387"/>
3915+
<location filename="../../src/class/settingmanager.cpp" line="416"/>
39063916
<source>ConfigUnableSave</source>
39073917
<translation>程式將無法保存配置,請檢查配置檔許可權。</translation>
39083918
</message>

src/class/scriptmachine.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1877,6 +1877,22 @@ bool ScriptMachine::isAngelArray(int typeID) const {
18771877
QMetaType::QVariantList;
18781878
}
18791879

1880+
void ScriptMachine::setFileEnableOverwrite(bool b) {
1881+
CScriptFile::ENABLE_OVERWRITE = b;
1882+
}
1883+
1884+
void ScriptMachine::setFileSystemWrite(bool b) {
1885+
CScriptFileSystem::ENABLE_WRITE = b;
1886+
}
1887+
1888+
bool ScriptMachine::fileEnableOverwrite() const {
1889+
return CScriptFile::ENABLE_OVERWRITE;
1890+
}
1891+
1892+
bool ScriptMachine::fileSystemWrite() const {
1893+
return CScriptFileSystem::ENABLE_WRITE;
1894+
}
1895+
18801896
void ScriptMachine::scriptAssert(bool b) {
18811897
auto ctx = asGetActiveContext();
18821898
if (ctx) {

0 commit comments

Comments
 (0)