diff --git a/json/permission.json b/json/permission.json index 9f0963a..e072d9e 100644 --- a/json/permission.json +++ b/json/permission.json @@ -1,17 +1,20 @@ { - "models_dir": "${HOME}$/py/rbac/models", - "output_dir": "${HOME}$/py/sage/wwwroot/_a/permission", - "dbname": "sage", "tblname": "permission", + "uitype":"tree", "title":"权限", - "params": { - "browserfields": { - "exclouded": ["id"], - "cwidth": {} - }, - "editexclouded": [ - "id" - ], - "record_toolbar": null - } + "params":{ + "idField":"id", + "textField":"name", + "editable":true, + "browserfields":{ + "alters":{} + }, + "edit_exclouded_fields":[], + "parentField":"parentid", + "toolbar":{ + }, + "binds":[ + ] + } + } diff --git a/json/users.json b/json/users.json index 1dca47c..ed1b2d3 100644 --- a/json/users.json +++ b/json/users.json @@ -1,11 +1,9 @@ { - "models_dir": "${HOME}$/py/rbac/models", - "output_dir": "${HOME}$/py/sage/wwwroot/_a/users", - "dbname": "sage", "tblname": "users", "title":"用户", "params": { "sortby":"username", + "confidential_fields":["password"], "logined_userorgid":"orgid", "browserfields": { "exclouded": ["id", "password", "orgid", "nick_name" ], diff --git a/rbac/check_perm.py b/rbac/check_perm.py index 8a96863..83b770f 100644 --- a/rbac/check_perm.py +++ b/rbac/check_perm.py @@ -9,6 +9,7 @@ from appPublic.log import debug, exception from appPublic.dictObject import DictObject from appPublic.uniqueID import getID from ahserver.auth_api import AuthAPI, user_login +from ahserver.globalEnv import password_encode from ahserver.serverenv import ServerEnv, get_serverenv, set_serverenv import jwt @@ -55,7 +56,8 @@ async def get_user_roles(userid): roles.append(r.name) return roles -async def get_owner_orgid(sor): +async def get_owner_orgid(sor, *args): + debug('uyyyyyyyyyyyyyyyy') global ownerid if ownerid: return ownerid @@ -66,16 +68,6 @@ async def get_owner_orgid(sor): ownerid = recs[0].orgid return ownerid -def mypassword(passwd): - config = getConfig() - key = config.password_key or default_password_key - return password(passwd, key = key) - -def myunpassword(passwd): - config = getConfig() - key = config.password_key or default_password_key - return unpassword(passwd) - async def create_org(sor, ns): await sor.C('organization', ns) otns = { @@ -100,6 +92,7 @@ async def register_user(sor, ns): if ns.password != ns.cfm_password: debug('password not match') return False + ns.password = password_encode(ns.password) id = getID() ns.id = id ns.orgid = id @@ -111,8 +104,6 @@ async def register_user(sor, ns): def load_rbac(): AuthAPI.checkUserPermission = objcheckperm env = ServerEnv() - env.password = mypassword - env.unpassword = myunpassword env.get_user_roles = get_user_roles env.check_user_password = checkUserPassword env.register_user = register_user @@ -145,7 +136,7 @@ async def getAuthenticationUserid(sor, request): auther = BasicAuth('x') m = auther.decode(auth) username = m.login - password = mypassword(m.password) + password = password_encode(m.password) sql = "select * from users where username=${username}$ and password=${password}$" recs = await sor.sqlExe(sql, {'username':username,'password':password}) if len(recs) < 1: @@ -172,8 +163,7 @@ right join userrole c on b.roleid = c.roleid where c.userid = ${userid}$ """ - rf = RegisterFunction() - dbname = await rf.exe('get_module_dbname', 'rbac') + dbname = await get_dbname() db = DBPools() async with db.sqlorContext(dbname) as sor: perms = await sor.R('permission', {'path':path}) diff --git a/wwwroot/user/register.dspy b/wwwroot/user/register.dspy index e369e55..e3e7eea 100644 --- a/wwwroot/user/register.dspy +++ b/wwwroot/user/register.dspy @@ -9,6 +9,5 @@ async with db.sqlorContext(dbname) as sor: except Exception as e: fe = format_exc() exception(f'{e=}\n{fe}') - return UiMessage(title="Success", message="register success") return UiError(title='Error', message="register failed") diff --git a/wwwroot/user/up_login.dspy b/wwwroot/user/up_login.dspy index 2b27374..0a7a8eb 100644 --- a/wwwroot/user/up_login.dspy +++ b/wwwroot/user/up_login.dspy @@ -1,9 +1,8 @@ debug(f'{params_kw=}, {password=}') -await rfexe('password', params_kw) ns = { "username":params_kw.username, - "password":params_kw.password + "password":password_encode(params_kw.password) } info(f'{ns=}') diff --git a/wwwroot/user/user_menu.ui b/wwwroot/user/user_menu.ui index 9b072d2..8c0ad70 100644 --- a/wwwroot/user/user_menu.ui +++ b/wwwroot/user/user_menu.ui @@ -8,7 +8,7 @@ "width":"70%" }, "items":[ -{% if 'customer' in get_user_roles(get_user()) %} +{% if 'customer.customer' in get_user_roles(get_user()) %} { "name":"recharge", "label":"充值", @@ -17,7 +17,7 @@ { "name":"myacc", "label":"我的账户", - "url":"{{entire_url('myaccout')}}" + "url":"{{entire_url('myaccount')}}" }, { "name":"mybill",