def checkAuthority(self): """ 验证用户权限 """ Logger.info('AuthorityManagement.checkAuthority begin'); # 判断当前浏览的页面是否需要登陆 exception = None if DBAuthority.checkUrl(web.ctx.path): Logger.info("访问的路径[%s]是受权限保护路径" % str(web.ctx.path)) # 判断用户权限是否可以浏览页面 # 判断用户登录 from webapp.Common import Common if Common.session.userInfo == None: exception = Exception(u"用户没有登录") else: userInfo = Common.session.userInfo # 判断浏览权限 if DBAuthority.checkUserUrl(userInfo.userName, str(web.ctx.path)): pass; else: exception = Exception(u"没有权限浏览网页") else: Logger.info("访问的路径[%s]" % str(web.ctx.path)) if exception == None: return else: Common.session.exception = exception; raise exception Logger.info('AuthorityManagement.checkAuthority end');
def initMenu(self, userName): """ 初始化菜单项目 """ Logger.info('MenuManagement.initMenu begin'); self.menuList = [] # 获取所有菜单项目 menu = DBAuthority.selectMenu(userName) for subMenu in menu: # 查找子菜单所属的主菜单 flg=True for menu in self.menuList: if subMenu["parentId"] == menu["id"]: menu["subMenu"].append(subMenu) flg=False; if flg: # 创建主菜单 temp = DBMenu.selectByMenuId(subMenu["parentId"]) menu = {} menu['id'] = temp['menuId'] menu['text'] = temp['text'] menu['url'] = temp['url'] menu['sort'] = temp['sort'] menu["subMenu"] = [] menu["subMenu"].append(subMenu) self.menuList.append(menu) self.menuList.sort(key=self.sort) # sorted(self.menuList,key=sort) ''' # 获取一级菜单项目 menu = DBAuthority.selectMenu(userName, 0) for item in menu: subMenu = DBAuthority.selectMenu(userName, item["id"]) menuItem = {}; menuItem["id"] = item["id"] menuItem["text"] = item["text"] menuItem["url"] = item["url"] menuItem["subMenu"] = subMenu self.menuList.append(menuItem) ''' # 整理菜单项目 for item in self.menuList: item['url'] = item['subMenu'][0]['url'] Logger.info('MenuManagement.initMenu end');
def login(self, userName, password): """ 用户登录 returns: true:登录成功 false:登录失败 """ if DBUserInfo.login(userName, password): Logger.info("用户验证成功") userInfo = UserInfo(userName, 0); from webapp.Common import Common Common.session.userInfo = userInfo # 初始化菜单数据 from MenuManagement import MenuManagement Common.session.menu = MenuManagement(userName) return True else: Logger.info("用户验证失败") return False;
def setSelectedMenu(self): ''' 当前选中的菜单项目 ''' Logger.info('MenuManagement.setSelectedMenu begin'); # print web.ctx.path # 根据请求路径查看改路径的主菜单和子菜单项目 for mainMenu in self.menuList: if mainMenu.has_key('url'): if mainMenu['url'] == web.ctx.path: self.selectedMainMenu = mainMenu['id'] self.selectedSubMenu = mainMenu['id'] Logger.debug("选中的主菜单项目是[%d:%s]" % (mainMenu['id'], mainMenu['text'])) Logger.debug("选中的子菜单项目是[%d:%s]" % (mainMenu['id'], mainMenu['text'])) break; else: for subMenu in mainMenu["subMenu"]: if subMenu['url'] == web.ctx.path: self.selectedMainMenu = mainMenu['id'] self.selectedSubMenu = subMenu['id'] Logger.debug("选中的主菜单项目是[%d:%s]" % (mainMenu['id'], mainMenu['text'])) Logger.debug("选中的子菜单项目是[%d:%s]" % (mainMenu['id'], mainMenu['text'])) break; Logger.info('MenuManagement.setSelectedMenu end');