加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1. 出廠默認(rèn)用戶
    • 2. 數(shù)據(jù)文件格式
    • 3. 用戶登錄
    • 4. 用戶登錄狀態(tài)
    • 5. 修改密碼
    • 6. 用戶管理
    • 7. 創(chuàng)建用戶
    • 8. 編輯用戶
    • 9. 注意
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

產(chǎn)品應(yīng)用 | AWTK 開源串口屏開發(fā)(9) - 用戶和權(quán)限管理

02/03 10:55
2193
閱讀需 14 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

在AWTK串口屏中,內(nèi)置用戶管理和權(quán)限控制的模型,無需編碼即可實(shí)現(xiàn)登錄、登出、修改密碼、權(quán)限控制、創(chuàng)建用戶、刪除用戶等功能,本文介紹一下用戶管理和權(quán)限控制的基本用法。

用戶管理和權(quán)限控制是一個(gè)常用的功能。在工業(yè)軟件中,通常將用戶分為幾種不同的角色,每種角色有不同的權(quán)限,比如管理員、操作員和維護(hù)員等等。在 AWTK 串口屏中,內(nèi)置基本的用戶管理和權(quán)限控制功能,可以滿足常見的需求。開發(fā)者不需要編寫代碼,設(shè)計(jì)好用戶界面,通過數(shù)據(jù)和命令綁定規(guī)則,即可實(shí)現(xiàn)用戶和權(quán)限管理功能,比如登錄、登出、修改密碼、權(quán)限控制、創(chuàng)建用戶、刪除用戶等功能。

本文介紹一下 AWTK 串口屏中的用戶管理和權(quán)限控制功能。

1. 出廠默認(rèn)用戶

在下面的數(shù)據(jù)文件中,可以修改出廠默認(rèn)的用戶和密碼。密碼使用 sha256 加密,可以使用在線工具生成。https://emn178.github.io/online-tools/sha256.html

design/default/data/user_manager.csv

比如 demo 中的默認(rèn)用戶是:

admin|0|8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918|管理員(默認(rèn)密碼:admin)

2. 數(shù)據(jù)文件格式

用 CSV 格式的文件存儲(chǔ)用戶名和密碼,每行一個(gè)用戶,每行的格式如下:

    用戶名??梢允褂弥形?。角色。用來做實(shí)際的權(quán)限控制,怎么定義就怎么用。比如:0?表示管理員,1 表操作員,2 表示維護(hù)員。密碼。使用 sha256 加密。備注??梢允褂弥形?。

在后面的數(shù)據(jù)綁定中,name 表示用戶名,role 表示角色,password 表示密碼,memo 表示備注。

3. 用戶登錄

3.1 用戶登錄命令

當(dāng)啟用用戶管理時(shí),默認(rèn)模型 (default) 會(huì)提供一個(gè) login 的命令。

login 命令依賴兩個(gè)屬性:

login_username 登錄的用戶名。

login_password 登錄的密碼。

login 命令需要一個(gè)參數(shù),用來指定登錄成功后跳轉(zhuǎn)的目標(biāo)頁面。

3.2 數(shù)據(jù)綁定

綁定屬性 綁定規(guī)則 說明
v-data:value {login_username} 用戶名編輯器
v-data:value {login_password, Mode=OneWayToModel, ToModel=sha256(value)} 密碼編輯器

Mode=OneWayToModel 表示單向綁定,只能從控件到模型,主要是因?yàn)槟P屠锏拿艽a是加密后的哈希值,不能反向綁定到控件。

表示將控件輸入的數(shù)據(jù)使用 sha256 加密后,再賦值給模型。

3.3 命令綁定

綁定屬性 綁定規(guī)則 說明
v-on:click {login, Args=home_page} 登錄按鈕的點(diǎn)擊事件。home_page 是登錄成功后跳轉(zhuǎn)的頁面

3.4 demo 參考界面

4. 用戶登錄狀態(tài)

4.1 用戶登錄狀態(tài)

用戶登錄成功后,會(huì)在默認(rèn)模型 (default) 中提供兩個(gè)變量:

username 登錄的用戶名。

userrole 登錄的用戶角色。

userrole 是一個(gè)整數(shù),可以通過 userrole 來控制權(quán)限。

4.2 數(shù)據(jù)綁定

綁定屬性 綁定規(guī)則 說明
v-data:value {username} 顯示當(dāng)前用名
v-data:value {one_of(‘管理員;工程師;操作員’, userrole)} 顯示當(dāng)前的角色名

4.3 命令綁定

比如,只用管理員才能訪問的頁面,可以通過下面的命令綁定來實(shí)現(xiàn):

綁定屬性 綁定規(guī)則 說明
v-on:click {navigate, Args=user_manager, AutoDisable=false} AutoDisable 一定要設(shè)置為 false,否則不能綁定 enable 屬性
v-data:enable data:enable ? ?{userrole==0} 當(dāng)前角色為管理員時(shí),才啟用本按鈕

比如,只用管理員執(zhí)行某些命令,可以通過下面的命令綁定來實(shí)現(xiàn):

綁定屬性 綁定規(guī)則 說明
v-on:click {do_something, Args=xxx, AutoDisable=false} AutoDisable 一定要設(shè)置為 false,否則不能綁定 enable 屬性
v-data:enable data:enable ? ?{userrole==0} 當(dāng)前角色為管理員時(shí),才啟用本按鈕

4.4 demo 參考界面

管理員界面,全部功能可用。

工程師界面,部分功能可用。

5. 修改密碼

5.1 修改密碼命令

當(dāng)啟用用戶管理時(shí),默認(rèn)模型 (default) 會(huì)提供一個(gè) change_password 的命令。change_password 命令依賴兩個(gè)屬性:

    change_password 修改的密碼。change_confirm_password 確認(rèn)修改的密碼。

change_password 命令不需要參數(shù)。

5.2 數(shù)據(jù)綁定

綁定屬性 綁定規(guī)則 說明
v-data:value {change_password, Mode=OneWayToModel, ToModel=sha256(value)} 密碼編輯器
v-data:value {change_confirm_password, Mode=OneWayToModel, ToModel=sha256(value)} 確認(rèn)密碼編輯器

5.3 命令綁定

綁定屬性 綁定規(guī)則 說明
v-on:click {change_password, CloseWindow=true} 確認(rèn)按鈕的點(diǎn)擊事件。

5.4 demo 參考界面

6. 用戶管理

前面的模型都是默認(rèn)模型 (default),用戶管理模型是 user_manager。

6.1 用戶管理命令

當(dāng)啟用用戶管理時(shí),用戶管理模型 (user_manager) 會(huì)提供一些命令。

add 添加用戶。

remove 刪除用戶。

edit 編輯用戶。

save 保存用戶。

reload 重新加載用戶。

set_selected 設(shè)置選中的用戶。

6.2 數(shù)據(jù)綁定

綁定屬性 綁定規(guī)則 說明
v-data:value {selected_index} 選中的用戶索引,在列表項(xiàng)目外使用。
v-data:value {index} 序數(shù),在列表項(xiàng)內(nèi)使用。
v-data:value {item.name} 用戶名,在列表項(xiàng)內(nèi)使用。
v-data:value {one_of(‘管理員;工程師;操作員’, item.role)} 角色,在列表項(xiàng)內(nèi)使用。
v-data:value {item.memo} 備注,在列表項(xiàng)內(nèi)使用。

6.3 命令綁定

綁定屬性 綁定規(guī)則 說明
v-on:click {add} 添加 按鈕的點(diǎn)擊事件。
v-on:click {edit} 編輯 按鈕的點(diǎn)擊事件。
v-on:click {save} 保存 按鈕的點(diǎn)擊事件。
v-on:click {reload} 重新加載 按鈕的點(diǎn)擊事件。
v-on:click {set_selected} 列表項(xiàng)的點(diǎn)擊事件。
v-on:click {remove, Args=selected_index, AutoDisable=false} 刪除按鈕的點(diǎn)擊事件。AutoDisable 一定要設(shè)置為 false,否則不能綁定 enable 屬性。

為了不讓用戶刪除管理員用戶,可以設(shè)置刪除按鈕的 enable 屬性。綁定規(guī)則如下:

綁定屬性 綁定規(guī)則 說明
v-data:enable {selected_index!=0} 當(dāng)前選中的用戶不是管理員時(shí),啟用本按鈕。

6.4 demo 參考界面

7. 創(chuàng)建用戶

user_manager 模型提供了一個(gè) add 命令,用來創(chuàng)建用戶。如果支持創(chuàng)建用戶,需要提供一個(gè)創(chuàng)建用戶的界面,窗口的名字必須是 user_manager_add。

通過 new 參數(shù)可以設(shè)置默認(rèn)數(shù)據(jù)。比如:

user_manager(new=' |1| | |');

7.1 模型

創(chuàng)建用戶的界面有自己的模型,代表當(dāng)前創(chuàng)建的用戶。

它具有下面的屬性:

name 表示 username 用戶名。

role 表示 role 角色。

password 表示 password 密碼。

memo 表示 memo 備注。

它還提供了一個(gè)確認(rèn)增加的命令。

add 命令。

7.2 數(shù)據(jù)綁定

綁定屬性 綁定規(guī)則 說明
v-data:value {name, validator=username} 用戶名編輯器,內(nèi)置數(shù)據(jù)校驗(yàn)器 username,用于檢查用戶名的有效性(如是否重名)
v-data:value {role} 角色編輯器
v-data:value {password, Mode=OneWayToModel, ToModel=sha256(value)} 密碼編輯器
v-data:value {memo} 備注編輯器

7.3 命令綁定

綁定屬性 綁定規(guī)則 說明
v-on:click {add, CloseWindow=true} 確認(rèn)按鈕的點(diǎn)擊事件。

7.4 demo 參考界面

8. 編輯用戶

user_manager 模型提供了一個(gè) edit 命令,用來編輯用戶。如果支持編輯用戶,需要提供一個(gè)編輯用戶的界面,窗口的名字必須是 user_manager_edit。

8.1 模型

編輯用戶的界面有自己的模型,代表當(dāng)前編輯的用戶。它具有下面的屬性:

    name 表示 username 用戶名。role 表示 role 角色。memo 表示 memo 備注。

不需要額外的命令。

8.2 數(shù)據(jù)綁定

綁定屬性 綁定規(guī)則 說明
v-data:value {name} 用戶名編輯器
v-data:value {role, Trigger=Explicit} 角色編輯器,為了方便取消,采用顯式更新
v-data:value {memo, Trigger=Explicit} 備注編輯器,為了方便取消,采用顯式更新

8.3 命令綁定

綁定屬性 綁定規(guī)則 說明
v-on:click {nothing, UpdateModel=true, CloseWindow=true} 確認(rèn)按鈕的點(diǎn)擊事件。
v-on:click {nothing, CloseWindow=true} 取消按鈕的點(diǎn)擊事件。

UpdateModel=true 表示更新模型,CloseWindow=true 表示關(guān)閉窗口。

8.4 demo 參考界面

9. 注意

本項(xiàng)目并沒有編寫界面相關(guān)的代碼,AWStudio 在 src/pages 目錄下生成了一些代碼框架,這些代碼并沒有用到,可以刪除也可以不用管它,但是不能加入編譯。

實(shí)際開發(fā)時(shí),可以參考 demo_user_manager 演示項(xiàng)目,在的它 UI 文件上修改。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
TLE6250GXUMA1 1 Infineon Technologies AG Interface Circuit, BICMOS, PDSO8, GREEN, PLASTIC, SOP-8
$1.08 查看
88E1512-A0-NNP2I000 1 Marvell Technology Group Ltd Ethernet Transceiver, 8 X 8 MM, GREEN, QFN-56
$23.12 查看
BGM113A256V21R 1 Silicon Laboratories Inc Telecom IC,

ECAD模型

下載ECAD模型
暫無數(shù)據(jù) 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬元,國家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬元,國家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜