def __init__(self, Framework): Netlinks_Service.NetlinksService.__init__(self, Framework) shouldIgnoreLocal = self.getParameterValue('ignoreLocalConnections') if shouldIgnoreLocal == None: shouldIgnoreLocal = 'false' self.ignoreLocalConnections = Boolean.parseBoolean(shouldIgnoreLocal) self.dependencyNameIsKey = modeling.checkIsKeyAttribute( 'dependency', 'dependency_name') self.dependencySourceIsKey = modeling.checkIsKeyAttribute( 'dependency', 'dependency_source') ignoredIpsList = self.getParameterValue('ignoredIps') self.ignoredIps = None if ignoredIpsList != None: ipPatterns = ignoredIpsList.split(',') if (len(ipPatterns) > 0) and (ipPatterns[0] != ''): for ipPattern in ipPatterns: pattern = String(ipPattern) pattern = String(pattern.replaceAll("\.", "\\\.")) pattern = String(pattern.replaceAll("\*", "\\\d+")) try: m = Pattern.compile(pattern) if self.ignoredIps == None: self.ignoredIps = ArrayList() self.ignoredIps.add(m) except: logger.debug('Failed to compile ip pattern:', ipPattern) self.initializeServices()
def __init__(self, Framework): Netlinks_Service.NetlinksService.__init__(self, Framework) shouldIgnoreLocal = self.getParameterValue('ignoreLocalConnections') if shouldIgnoreLocal == None: shouldIgnoreLocal = 'false' self.ignoreLocalConnections = Boolean.parseBoolean(shouldIgnoreLocal) self.dependencyNameIsKey = modeling.checkIsKeyAttribute('dependency', 'dependency_name') self.dependencySourceIsKey = modeling.checkIsKeyAttribute('dependency', 'dependency_source') ignoredIpsList = self.getParameterValue('ignoredIps') self.ignoredIps = None if ignoredIpsList != None: ipPatterns = ignoredIpsList.split(',') if (len(ipPatterns) > 0) and (ipPatterns[0] != ''): for ipPattern in ipPatterns: pattern = String(ipPattern) pattern = String(pattern.replaceAll("\.", "\\\.")) pattern = String(pattern.replaceAll("\*", "\\\d+")) try: m = Pattern.compile(pattern) if self.ignoredIps == None: self.ignoredIps = ArrayList() self.ignoredIps.add(m) except: logger.debug('Failed to compile ip pattern:', ipPattern) self.initializeServices()
def getUnit(self): if self.unitName != None and self.unitName != "": self.unit = self.unitService.getUnitByName(self.unitName) if self.unitId != 0: self.unit = self.unitService.getUnitById(self.unitId) if self.unit == None: return None self.unitId = self.unit.unitId self.unitName = self.unit.unitName if self.unit != None: self.unitRootUrl = request.getAttribute("UnitRootUrl") if self.unitRootUrl == None: configUnitSiteRoot = request.getSession().getServletContext().getInitParameter("unitUrlPattern") if configUnitSiteRoot == None or configUnitSiteRoot == "": self.unitRootUrl = self.getCurrentSiteUrl(request) + "d/" + self.unit.unitName + "/" else: configUnitSiteRoot = String(configUnitSiteRoot) self.unitRootUrl = configUnitSiteRoot.replaceAll("\\{unitName\\}", self.unit.unitName) request.setAttribute("UnitRootUrl", self.unitRootUrl) cache = __jitar__.cacheProvider.getCache('sitenav') cache_k = "unit_nav_" + str(self.unit.unitId) unitSiteNavList = cache.get(cache_k) if unitSiteNavList == None: unitSiteNavList = __spring__.getBean("siteNavService").getAllSiteNav(False, 1, self.unit.unitId) cache.put(cache_k, unitSiteNavList) request.setAttribute("UnitSiteNavList", unitSiteNavList) request.setAttribute("canManege", self.canManege()) return self.unit
def loadProperties(cfg_file, extra_props): props = Properties() iterated_props = Properties() inherited_props = Properties() data_linage = Properties() global_reg = global_platform.load_global_registry() site_home = global_reg.getProperty('site.home') global_properties = global_reg.getProperty('global.properties') if global_properties: if site_home: baseFile = getBaseFile(global_properties, site_home) if baseFile == '': log.error('Global properties file does not exist: ' + global_properties) log.info( 'Suggested Fix: Update the global_platform.properties property within global.properties to the correct file path' ) sys.exit() global_properties = baseFile log.info('Loading global configuration from file: ' + global_properties) addPropertiesFromFile(props, global_properties, site_home) if cfg_file: addPropertiesFromFile(props, cfg_file, site_home) if extra_props: props.putAll(extra_props) # resolve property level inheritance and iterations log.debug('Attempting to resolve property level inheritance') enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() value = props.getProperty(key) # Check for property level inheritance if re.search(r"\.base$", key) is not None: prop_to_inherit = value prop_to_extend = key[:-5] log.debug('Inheriting the properties from the ' + prop_to_inherit + ' section in to the section ' + prop_to_extend) # Iterate the properties again looking for a match on properties to inherit enum_inner = props.keys() while enum_inner.hasMoreElements(): key_inner = enum_inner.nextElement() value_inner = props.getProperty(key_inner) log.debug('Checking key_inner [' + key_inner + '] matches ' + prop_to_inherit) if String.startsWith(String(key_inner), String(prop_to_inherit)): new_property = prop_to_extend + String.substring( key_inner, len(prop_to_inherit)) # Don't override the property if it has already been defined earlier if props.getProperty(new_property) is None: log.debug('Setting inherited property ' + new_property + ' to value ' + value_inner) inherited_props.setProperty(new_property, value_inner) addDataLinage(key, cfg_file, value_inner) # Remove the key that defines the base, just keeps us consistant with the template behaviours log.debug("About to remove key " + key) props.remove(key) props.putAll(inherited_props) log.debug('Attempting to resolve iterations') enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() value = props.getProperty(key) # Check for property set iterations if re.search(r"\.iterate$", key) is not None: iteration_key = key iteration_set = eval(value) prop_to_iterate = key[:-9] log.debug('Iterating the properties from the ' + prop_to_iterate + ' section') # Iterate the properties again looking for a match on properties to iterate enum_inner = props.keys() while enum_inner.hasMoreElements(): key_inner = enum_inner.nextElement() value_inner = props.getProperty(key_inner) # if the string is part of the set but not the actual iterator then we will check it if String.startsWith(String(key_inner), String( prop_to_iterate)) and key_inner != iteration_key: log.debug('Checking if the key [' + key_inner + '] or value = ' + value_inner + ' contains an iterator ') contains_iterator = 0 iterated_key = String(key_inner) iterated_value = String(value_inner) if String.indexOf(String(key_inner), "%") > -1: log.debug(key_inner + ' contains an iterator, replacing it') contains_iterator = 1 if String.indexOf(String(value_inner), "%") > -1: log.debug(value_inner + ' contains an iterator, replacing it') contains_iterator = 1 for i in iteration_set: iterated_key = String.replaceAll( String(key_inner), "\%", str(i)) iterated_value = String.replaceAll( String(value_inner), "\%", str(i)) # Don't override the property if it has already been defined earlier if props.getProperty(iterated_key) is None: log.debug('Setting iterated property ' + iterated_key + ' to value ' + iterated_value) iterated_props.setProperty(iterated_key, iterated_value) addDataLinage(key, cfg_file, iterated_value) # Remove the key that gets iterated, just keeps us consistant with the template behaviours if (contains_iterator == 1): log.debug('About to remove ' + key_inner) props.remove(key_inner) # Remove the key that defines the iterations, just keeps us consistant with the template behaviours props.remove(iteration_key) # Add the iterated properties back in to the main set props.putAll(iterated_props) # resolve embedded references enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() value = props.getProperty(key) if not value is None and len(value) > 0: if re.search(r"\$\{(.*?)\}", value) is not None: resolvedValue = resolveProperty(key, props) if resolvedValue is None: raise Exception('unable to resolve property: ' + key + '=' + value) else: props.setProperty(key, resolvedValue) addDataLinage(key, cfg_file, resolvedValue) # remove any properties that start with base (assumed that these are baseline properties that have been inherited enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() if String.startsWith(String(key), 'base.'): props.remove(key) decryptAllPasswords(cfg_file, props) return props
def __init__(self): self.params = ParamUtil(request) self.userIds = "" self.unitId = self.params.getIntParamZeroAsNull("unitId") self.metaGradeId = self.params.safeGetIntParam("gradeId") self.metaSubjectId = self.params.safeGetIntParam("subjectId") self.subjectId = self.params.safeGetIntParam("id") self.subjectService = __spring__.getBean("subjectService") self.subjectCode = request.getAttribute("subjectCode") self.accessControlService = __spring__.getBean("accessControlService") if self.unitId != None and self.unitId != 0: request.setAttribute("unitId", self.unitId) if self.subjectService == None: self.write("Cann't load subjectService !") return self.subject = None self.subject = self.subjectService.getSubjectByMetaData( self.metaSubjectId, self.metaGradeId) if self.subject == None: self.subject = self.subjectService.getSubjectById(self.subjectId) if self.subject == None: self.subject = self.subjectService.getSubjectByCode( self.subjectCode) if self.subject == None: # self.write("Object not be found !") self.write("Cann't load Subject Object !") return if self.isAdmin() == True or self.isContentAdmin( ) == True or self.isUserAdmin() == True: request.setAttribute("isAdmin", "") self.metaSubjectId = self.subject.metaSubject.msubjId self.metaGradeId = self.subject.metaGrade.gradeId self.subjectCode = self.subject.getSubjectCode() self.subjectRootUrl = request.getAttribute("SubjectRootUrl") if self.subjectRootUrl == None: configSubjectSiteRoot = request.getSession().getServletContext( ).getInitParameter("subjectUrlPattern") if configSubjectSiteRoot == None or configSubjectSiteRoot == "": self.subjectRootUrl = self.getCurrentSiteUrl( request) + "k/" + self.subject.subjectCode + "/" else: configSubjectSiteRoot = String(configSubjectSiteRoot) self.subjectRootUrl = configSubjectSiteRoot.replaceAll( "\\{subjectCode\\}", self.subject.subjectCode) request.setAttribute("SubjectRootUrl", self.subjectRootUrl) cache = __jitar__.cacheProvider.getCache('sitenav') cache_k = "subject_nav_" + str(self.subject.subjectId) subjectSiteNavList = cache.get(cache_k) if subjectSiteNavList == None: subjectSiteNavList = __spring__.getBean( "siteNavService").getAllSiteNav(False, 2, self.subject.subjectId) cache.put(cache_k, subjectSiteNavList) request.setAttribute("SubjectSiteNavList", subjectSiteNavList) #得到多学科用户 qry2 = UserSubjectGradeQuery("usg.userId") qry2.subjectId = self.get_current_subjectId() qry2.gradeId = self.get_current_gradeId() qry2.FuzzyMatch = True #匹配学段,包括年级 usg_list = qry2.query_map(qry2.count()) if usg_list != None and len(usg_list) > 0: for uu in usg_list: self.userIds += str(uu["userId"]) + "," if self.userIds != "" and self.userIds.endswith(","): self.userIds = self.userIds[0:len(self.userIds) - 1]
def loadProperties(cfg_file, extra_props): props = Properties() iterated_props = Properties() inherited_props = Properties() data_linage = Properties() redback_reg = redback.load_redback_registry() site_home = redback_reg.getProperty('site.home') global_properties = redback_reg.getProperty('global.properties') if global_properties: if site_home: baseFile=getBaseFile(global_properties, site_home) if baseFile=='': log.error('Global properties file does not exist: ' + global_properties) log.info('Suggested Fix: Update the global.properties property within redback.properties to the correct file path') sys.exit() global_properties=baseFile log.info('Loading global configuration from file: ' + global_properties) addPropertiesFromFile(props, global_properties, site_home) if cfg_file: addPropertiesFromFile(props, cfg_file, site_home) if extra_props: props.putAll(extra_props) # resolve property level inheritance and iterations log.debug('Attempting to resolve property level inheritance') enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() value = props.getProperty(key) # Check for property level inheritance if re.search(r"\.base$", key) is not None: prop_to_inherit = value prop_to_extend = key[:-5] log.debug('Inheriting the properties from the ' + prop_to_inherit + ' section in to the section ' + prop_to_extend) # Iterate the properties again looking for a match on properties to inherit enum_inner = props.keys() while enum_inner.hasMoreElements(): key_inner = enum_inner.nextElement() value_inner = props.getProperty(key_inner) log.debug('Checking key_inner [' + key_inner + '] matches ' + prop_to_inherit) if String.startsWith(String(key_inner),String(prop_to_inherit)): new_property = prop_to_extend + String.substring(key_inner, len(prop_to_inherit)) # Don't override the property if it has already been defined earlier if props.getProperty(new_property) is None: log.debug('Setting inherited property ' + new_property + ' to value ' + value_inner) inherited_props.setProperty(new_property, value_inner) addDataLinage(key,cfg_file,value_inner) # Remove the key that defines the base, just keeps us consistant with the template behaviours log.debug("About to remove key " + key) props.remove(key) props.putAll(inherited_props) log.debug('Attempting to resolve iterations') enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() value = props.getProperty(key) # Check for property set iterations if re.search(r"\.iterate$", key) is not None: iteration_key = key iteration_set = eval(value) prop_to_iterate = key[:-9] log.debug('Iterating the properties from the ' + prop_to_iterate + ' section') # Iterate the properties again looking for a match on properties to iterate enum_inner = props.keys() while enum_inner.hasMoreElements(): key_inner = enum_inner.nextElement() value_inner = props.getProperty(key_inner) # if the string is part of the set but not the actual iterator then we will check it if String.startsWith(String(key_inner),String(prop_to_iterate)) and key_inner != iteration_key: log.debug('Checking if the key [' + key_inner + '] or value = ' + value_inner + ' contains an iterator ') contains_iterator = 0 iterated_key = String(key_inner) iterated_value = String(value_inner) if String.indexOf(String(key_inner),"%") > -1: log.debug(key_inner + ' contains an iterator, replacing it') contains_iterator = 1 if String.indexOf(String(value_inner),"%") > -1: log.debug(value_inner + ' contains an iterator, replacing it') contains_iterator = 1 for i in iteration_set: iterated_key = String.replaceAll(String(key_inner),"\%",str(i)) iterated_value = String.replaceAll(String(value_inner),"\%",str(i)) # Don't override the property if it has already been defined earlier if props.getProperty(iterated_key) is None: log.debug('Setting iterated property ' + iterated_key + ' to value ' + iterated_value) iterated_props.setProperty(iterated_key, iterated_value) addDataLinage(key,cfg_file,iterated_value) # Remove the key that gets iterated, just keeps us consistant with the template behaviours if (contains_iterator == 1): log.debug('About to remove ' + key_inner) props.remove(key_inner) # Remove the key that defines the iterations, just keeps us consistant with the template behaviours props.remove(iteration_key) # Add the iterated properties back in to the main set props.putAll(iterated_props) # resolve embedded references enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() value = props.getProperty(key) if not value is None and len(value) > 0: if re.search(r"\$\{(.*?)\}", value) is not None: resolvedValue = resolveProperty(key, props) if resolvedValue is None: raise Exception('unable to resolve property: ' + key + '=' + value) else: props.setProperty(key, resolvedValue) addDataLinage(key,cfg_file,resolvedValue) # remove any properties that start with base (assumed that these are baseline properties that have been inherited enum = props.keys() while enum.hasMoreElements(): key = enum.nextElement() if String.startsWith(String(key),'base.'): props.remove(key) decryptAllPasswords(cfg_file,props) return props