diff --git a/json/userroles.json b/json/userroles.json deleted file mode 100644 index e1ccd24..0000000 --- a/json/userroles.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "models_dir": "${HOME}$/py/rbac/models", - "output_dir": "${HOME}$/py/sage/wwwroot/_a/userroles", - "dbname": "sage", - "tblname": "userroles", - "title":"用户", - "params": { - "relation":{ - "outter_field":"roleid", - "param_field":"userid" - }, - "browserfields": { - "exclouded": ["id", "userid"], - "cwidth": {} - }, - "editexclouded": [ - "id", - "userid" - ], - "record_toolbar": null - } -} diff --git a/json/users.json b/json/users.json index 35c9cc9..1dca47c 100644 --- a/json/users.json +++ b/json/users.json @@ -6,13 +6,20 @@ "title":"用户", "params": { "sortby":"username", + "logined_userorgid":"orgid", "browserfields": { - "exclouded": ["id"], + "exclouded": ["id", "password", "orgid", "nick_name" ], "cwidth": {} }, "editexclouded": [ - "id" + "id", "nick_name", "orgid" ], - "record_toolbar": null + "subtables": [ + { + "field":"userid", + "title":"用户角色", + "subtable":"userrole" + } + ] } } diff --git a/rbac/check_perm.py b/rbac/check_perm.py index a915760..51515ee 100644 --- a/rbac/check_perm.py +++ b/rbac/check_perm.py @@ -43,7 +43,7 @@ def get_apikey_from_token(token): return None async def get_user_roles(userid): - sql = "select b.name from userrole a, role b where a.userid=${userid}$ and a.roleid = b.id" + sql = "select concat(b.orgtypeid, '.' b.name) as name from userrole a, role b where a.userid=${userid}$ and a.roleid = b.id" db = DBPools() roles = [] dbname = await get_dbname() diff --git a/wwwroot/.DS_Store b/wwwroot/.DS_Store deleted file mode 100644 index bc88072..0000000 Binary files a/wwwroot/.DS_Store and /dev/null differ diff --git a/wwwroot/user/user.ui b/wwwroot/user/user.ui index 62902d2..5b5b4cf 100644 --- a/wwwroot/user/user.ui +++ b/wwwroot/user/user.ui @@ -3,19 +3,23 @@ "widgettype":"HBox", "options":{ "css":"clickable", - "popup":{ - "options":{ - "auto_dismiss":true - }, - "popup_desc":{ - "widgettype":"urlwidget", - "options":{ - "url":"{{entire_url('user_menu.ui')}}" - } - }, - "popup_event":"click" - } + "cwidth":14 }, + "binds":[ + { + "wid":"self", + "event":"click", + "actiontype":"urlwidget", + "popup_options":{ + "eventpos":true, + "dismiss_events":["command"] + }, + "target":"Popup", + "options":{ + "url":"{{entire_url('user_menu.ui')}}" + } + } + ], "subwidgets":[ { "widgettype":"Icon", @@ -28,7 +32,7 @@ "widgettype":"Text", "options":{ "wrap":false, - "text":"{{get_username()}}" + "text":"{{get_username()}}({{str(get_user_roles(get_user()))}})" } } ] diff --git a/wwwroot/user/user_menu.ui b/wwwroot/user/user_menu.ui index 64bba74..3d8ceb6 100644 --- a/wwwroot/user/user_menu.ui +++ b/wwwroot/user/user_menu.ui @@ -1,7 +1,7 @@ { "widgettype":"Menu", "options":{ - "target":"page_center", + "target":"PopupWindow", "items":[ {% if 'customer' in get_user_roles(get_user()) %} { @@ -35,6 +35,11 @@ "label":"重置密码", "url":"{{entire_url('reset_password')}}" }, + { + "name":"myrole", + "label":"我的角色", + "url":"{{entire_url('myrole.ui')}}" + }, { "name":"logout", "label":"签退", diff --git a/wwwroot/user/user_panel.ui b/wwwroot/user/user_panel.ui index 361c407..e80acaa 100644 --- a/wwwroot/user/user_panel.ui +++ b/wwwroot/user/user_panel.ui @@ -2,7 +2,7 @@ "id":"user_panel", "widgettype":"VBox", "options":{ - "width":"100px" + "width":"auto" }, "subwidgets":[ {