Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
 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
Пример #4
0
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
Пример #5
0
    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