예제 #1
0
	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');
예제 #2
0
	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');
예제 #3
0
	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;
예제 #4
0
	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');