def addRolePermission(self,roleid,permid): crud = _CRUD(self,db,'ac_rolepermission') ns = { "rp_id":getID(), "role_id":roleid, "perm_id":permid } crud.C(ns) return ns
def addFunctionPermission(self,funcid,permid): crud = _CRUD(self,db,'ac_funcpermission') ns = { "fp_id":getID(), "func_id":funcid, "perm_id":permid } crud.C(ns) return ns
def addUserPermission(self,userid,permid): crud = _CRUD(self,db,'ac_userpermission') ns = { "up_id":getID(), "user_id":userid, "perm_id":permid } crud.C(ns) return ns
def addUserRole(self,userid,roleid): crud = _CRUD(self.db,'ac_userrole') ns = { "ur_id":getID(), "user_id":userid, "role_id":roleid } crud.C(ns) return ns
def setSendData(self, receiver, text, crypted='0', zipped='0'): if crypted == '0': arr = [crypted, '0', self.myname, receiver, text] return '|+|'.join(arr) rpubk = self.rsa.publickeyFromText(self.getPeerPublickey(receiver)) key = getID() ctext = self.rc4.encode(text, key) sign = self.rsa.sign(self.private_key, text) cryptedkey = self.rsa.encode(rpubk, key) arr = [cryptedkey, sign, ctext] return '|@|'.join(arr)
def addRole(self,roleName): @self.pool.runSQL def sql(db,ns): desc = { "sql_string":"""insert into ac_roles (role_id,rolename) values (${role_id}$,${rolename}$)""" } return desc ns = { "role_id":getID(), "rolename":roleName } sql(self.db,ns) return ns
def addPermission(self,pname): @self.pool.runSQL def sql(db,ns): desc = { "sql_string":""" insert into ac_permissions (perm_id,p_name) values (${perm_id}$,${p_name}$) """ } return desc ns = { "perm_id":getID(), "p_name":pname } sql(self.db,ns) return ns
def addFunction(self,fname,url): @self.pool.runSQL def sql(db,ns): desc = { "sql_string":""" insert into ac_functions (func_id,url,functionname) values (${func_id}$,${url}$,${functionname}$) """ } return desc ns = { "func_id":getID(), "url":url, "functionname":fname } sql(self.db,ns) return ns
async def main(dbname, NS, **kw): fields = await self.pool.getTableFields(self.dbname, self.tablename, **kw) flist = [f['name'] for f in fields] fns = ','.join(flist) vfs = ','.join(['${' + f + '}$' for f in flist]) data = {} [data.update({k.lower(): v}) for k, v in NS.items()] pk = await self.primaryKey(**kw) k = pk[0]['field_name'] if not data.get(k): v = getID() data[k] = v data = self.oa.execute(self.dbname + '_' + self.tablename, 'beforeAdd', data) kwargs = kw.copy() kwargs['fns'] = fns kwargs['vfs'] = vfs await addSQL(self.dbname, data, **kwargs) data = self.oa.execute(self.dbname + '_' + self.tablename, 'afterAdd', data) return {k: data[k]}