⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toolbox.py

📁 Network Administration Visualized 网络管理可视化源码
💻 PY
字号:
# -*- coding: ISO8859-1 -*-## Copyright 2003, 2004 Norwegian University of Science and Technology## This file is part of Network Administration Visualized (NAV)## NAV is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## NAV is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with NAV; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA### $Id: toolbox.py 3315 2005-07-27 12:12:47Z mortenv $# Authors: Morten Vold <morten.vold@itea.ntnu.no>#"""This module contains functionality related to the web toolbox."""from nav import configimport os, os.pathimport nav.auth, nav.web, nav.pathdef _compareTools(x, y):    """    Internal function to compare two tools for sorting purposes    """    # Do a standard comparison of priority values (to accomplish an    # ascendingg sort, we negate the priorities)    ret = cmp(-x.priority, -y.priority)    # If priorities were equal, sort by name instead    if not ret:        ret = cmp(x.name.upper(), y.name.upper())    return ret    def getToolList():    """ Searches the configured list of paths for *.tool files and    returns a list of Tool objects representing these files"""    paths = {}    if nav.web.webfrontConfig.has_option('toolbox', 'path'):        paths = nav.web.webfrontConfig.get('toolbox', 'path').split(os.pathsep)    else:        return None    list = []    for path in paths:        if os.access(path, os.F_OK):            filelist = os.listdir(path)            for filename in filelist:                if filename[-5:] == '.tool':                    fullpath = os.path.join(path, filename)                    list.append(Tool().load(fullpath))    # Sort the tool list according to the _cmpTool function    list.sort(_compareTools)    return listdef filterToolList(toolList, user):    """Returns a filtered version of toolList, according to the uri    privileges of the user."""    newToolList = []    for tool in toolList:        if nav.auth.hasPrivilege(user, 'web_access', tool.uri):            newToolList.append(tool)    return newToolListclass Tool:    def __init__(self):        self.name = ''        self.uri = ''        self.description = ''        self.icon = ''    def load(self, filename):        if filename[0] != os.sep:            filename = os.path.join(os.getcwd(), filename)        dict = config.readConfig(filename)        self.name        = dict['name']        self.uri         = dict['uri']        self.description = dict['description']        self.icon        = dict['icon']        if dict.has_key('priority'):            self.priority = int(dict['priority'])        else:            self.priority = 0                return self    def __str__(self):        return "%s (%s)" % (self.name, self.uri)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -