コード例 #1
0
    def organizations(self):
        """
      Active, verified organizations related to this incident.

      Handles current and legacy incident/s properties.
      """
        from organization import Organization  # avoid circular import

        # lookup using new incidents field
        orgs = list(Organization.all().filter('incidents', self.key()).filter(
            'org_verified', True).filter('is_active', True))

        # build list of id and look for global admin
        org_ids = set()
        seen_global_admin = False
        for org in orgs:
            if org.is_global_admin:
                seen_global_admin = True
            org_id = org.key().id()
            if org_id not in org_ids:
                org_ids.add(org_id)

        # check legacy incident field
        legacy_field_orgs = Organization.all().filter('incident', self.key()) \
            .filter('org_verified', True) \
            .filter('is_active', True)
        for org in legacy_field_orgs:
            if org.key().id() not in org_ids:
                orgs.append(org)

        # prepend global admin if not encountered
        if not seen_global_admin:
            orgs = (list(Organization.all().filter('name', 'Admin')) + orgs)
        return orgs
コード例 #2
0
ファイル: server.py プロジェクト: gourneau/pritunl
    def _generate_ovpn_conf(self):
        if not self.get_orgs():
            raise ValueError('Ovpn conf cannot be generated without ' + \
                'any organizations')

        logger.debug('Generating server ovpn conf. %r' % {
            'server_id': self.id,
        })

        if not self.primary_organization or not self.primary_user:
            self._create_primary_user()

        if not os.path.isfile(self.dh_param_path):
            self._generate_dh_param()

        primary_org = Organization(self.primary_organization)
        primary_user = primary_org.get_user(self.primary_user)

        self.generate_ca_cert()
        self._generate_tls_verify()
        self._generate_user_pass_verify()

        if self.local_network:
            push = 'route %s %s' % self._parse_network(self.local_network)
        else:
            push = 'redirect-gateway'

        server_conf = OVPN_SERVER_CONF % (
            self.port,
            self.protocol,
            self.interface,
            self.ca_cert_path,
            primary_user.cert_path,
            primary_user.key_path,
            self.tls_verify_path,
            self.dh_param_path,
            '%s %s' % self._parse_network(self.network),
            self.ifc_pool_path,
            push,
            self.ovpn_status_path,
            4 if self.debug else 1,
            8 if self.debug else 3,
        )

        if self.otp_auth:
            server_conf += 'auth-user-pass-verify %s via-file\n' % (
                self.user_pass_verify_path)

        if self.lzo_compression:
            server_conf += 'comp-lzo\npush "comp-lzo"\n'

        if self.local_network:
            server_conf += 'client-to-client\n'

        with open(self.ovpn_conf_path, 'w') as ovpn_conf:
            ovpn_conf.write(server_conf)
コード例 #3
0
    def _generate_ovpn_conf(self):
        if not self.get_orgs():
            raise ValueError("Ovpn conf cannot be generated without " + "any organizations")

        logger.debug("Generating server ovpn conf. %r" % {"server_id": self.id})

        if not self.primary_organization or not self.primary_user:
            self._create_primary_user()

        if not os.path.isfile(self.dh_param_path):
            self._generate_dh_param()

        primary_org = Organization(self.primary_organization)
        primary_user = primary_org.get_user(self.primary_user)

        self.generate_ca_cert()
        self._generate_tls_verify()
        self._generate_user_pass_verify()

        if self.local_network:
            push = "route %s %s" % self._parse_network(self.local_network)
        else:
            push = "redirect-gateway"

        server_conf = OVPN_SERVER_CONF % (
            self.port,
            self.protocol,
            self.interface,
            self.ca_cert_path,
            primary_user.cert_path,
            primary_user.key_path,
            self.tls_verify_path,
            self.dh_param_path,
            "%s %s" % self._parse_network(self.network),
            self.ifc_pool_path,
            push,
            self.ovpn_status_path,
            4 if self.debug else 1,
            8 if self.debug else 3,
        )

        if self.otp_auth:
            server_conf += "auth-user-pass-verify %s via-file\n" % (self.user_pass_verify_path)

        if self.lzo_compression:
            server_conf += 'comp-lzo\npush "comp-lzo"\n'

        if self.local_network:
            server_conf += "client-to-client\n"

        with open(self.ovpn_conf_path, "w") as ovpn_conf:
            ovpn_conf.write(server_conf)
コード例 #4
0
ファイル: user.py プロジェクト: julianpistorius/back-end-api
 def leave_organization(self, organization_id):
     """
     remove relationship between user and organization
     :param organization_id:
     :return:
     """
     #TODO exception handling
     org = Organization()
     org.id = organization_id
     user_org_relationship = self._graph_db.match_one(start_node=self.user_node,
                                                     rel_type=GraphRelationship.MEMBER_OF,
                                                     end_node=org.org_node)
     self._graph_db.delete(user_org_relationship)
コード例 #5
0
ファイル: pooler.py プロジェクト: bitland/pritunl
 def _fill_users_pool(self):
     end = True
     for org in itertools.chain(Organization.iter_orgs(),
             Organization.iter_orgs_pool()):
         if not cache_db.set_length('openssl_tasks') and \
                 app_server.user_pool_size - org.client_pool_count > 0:
             end = False
             org.new_user(type=CERT_CLIENT_POOL)
         if not cache_db.set_length('openssl_tasks') and \
                 app_server.server_user_pool_size - \
                 org.server_pool_size > 0:
             end = False
             org.new_user(type=CERT_SERVER_POOL)
     if not end:
         self._fill_users_pool()
コード例 #6
0
ファイル: app_server.py プロジェクト: WrongChao/pritunl
    def _upgrade_data(self):
        version = self._get_version()
        cur_version = self._get_data_version()

        if cur_version and cur_version < self._get_version_int('0.10.5'):
            logger.info('Upgrading data to v0.10.5...')
            from server import Server
            for server in Server.iter_servers():
                server._upgrade_0_10_5()

            from organization import Organization
            for org in Organization.iter_orgs():
                org._upgrade_0_10_5()

        if cur_version and cur_version < self._get_version_int('0.10.6'):
            logger.info('Upgrading data to v0.10.6...')
            if self.password:
                from cache import persist_db
                logger.info('Upgrading config to v0.10.6...')
                salt = base64.b64encode(
                    '2511cebca93d028393735637bbc8029207731fcf')
                password = base64.b64encode(self.password.decode('hex'))
                persist_db.dict_set('auth', 'password',
                    '0$%s$%s' % (salt, password))
                self.password = None
                self.commit()

            from server import Server
            for server in Server.iter_servers():
                server._upgrade_0_10_6()

        if cur_version and cur_version < self._get_version_int('0.10.9'):
            logger.info('Upgrading data to v0.10.9...')
            from server import Server
            for server in Server.iter_servers():
                server._upgrade_0_10_9()

            from organization import Organization
            for org in Organization.iter_orgs():
                for user in org.iter_users():
                    user._upgrade_0_10_9()
                org.sort_users_cache()

        if cur_version != version:
            from pritunl import __version__
            version_path = os.path.join(self.data_path, VERSION_NAME)
            with open(version_path, 'w') as version_file:
                version_file.write('%s\n' % __version__)
コード例 #7
0
    def check_node_existence(self, data):
        """Checks if the nodes for the relationship exists, if not creates new nodes."""
        # import pdb; pdb.set_trace()
        if data:
            permalink = Transform.to_str(data.get('Permalink'))
            label = Transform.to_str(data.get('PrimaryRole'))
            uuid = Transform.to_str(data.get('Uuid'))

            try:
                organization = Organization()
                organization.check_create_organization_node(label, permalink)
                event = Event()
                event.check_create_event_node(uuid)

            except Exception as e:
                pass
コード例 #8
0
    def dispatch(self, *args, **kwargs):
        " All requests must have valid, in-date activation codes. "

        self.page_blocks = page_db.get_page_block_dict()

        self.activation_code = self.request.get('code')
        if not self.activation_code:
            self.abort(404)

        # lookup org by activation code
        orgs_by_code = Organization.all() \
            .filter('activation_code', self.activation_code)
        if orgs_by_code.count() != 1:
            self.abort(404)
        self.org_by_code = orgs_by_code[0]

        # send response if already activated
        if self.org_by_code.is_active:
            self.render(
                already_activated_template,
                org=self.org_by_code
            )
            return

        # send response if too late
        if self.org_by_code.activate_by < datetime.datetime.utcnow():
            self.render(
                activation_too_late_template,
                org=self.org_by_code
            )
            return

        # continue handling request
        super(ActivationHandler, self).dispatch(*args, **kwargs)
コード例 #9
0
    def check_node_existence(self, data):
        """Checks if the nodes for the relationship exists, if not creates new nodes."""

        if data:
            permalink = Transform.to_str(data.get('Permalink'))
            label = Transform.to_str(data.get('PrimaryRole'))
            people_permalink = Transform.to_str(data.get('PeoplePermalink'))

            try:
                organization = Organization()
                organization.check_create_organization_node(label, permalink)
                person = Person()
                person.check_create_person_node(people_permalink)

            except Exception as e:
                pass
コード例 #10
0
    def check_node_existence(self, data):
        """Checks if the nodes for the relationship exists, if not creates new nodes."""

        if data:
            permalink = Transform.to_str(data.get('Permalink'))
            label = Transform.to_str(data.get('PrimaryRole'))
            name = Transform.to_str(data.get('Name'))

            try:
                organization = Organization()
                organization.check_create_organization_node(label, permalink)
                category = Category()
                category.check_create_category_node(name)

            except Exception as e:
                pass
コード例 #11
0
    def check_node_existence(self, data):
        """Checks if the nodes for the relationship exists, if not creates new nodes."""

        if data:
            permalink = Transform.to_str(data.get('Permalink'))
            label = Transform.to_str(data.get('PrimaryRole'))
            fund_id = Transform.to_str(data.get('FundsId'))

            try:
                organization = Organization()
                organization.check_create_organization_node(label, permalink)
                fund = Fund()
                fund.check_create_fund_node(fund_id)

            except Exception as e:
                pass
コード例 #12
0
    def AuthenticatedPost(self, org, event):
        # get and check args
        ids = [int(id) for id in self.request.get('ids', '').split(',')]
        selected_org = (
            Organization.get(self.request.get('org'))
            if self.request.get('org') else None
        )
        status = self.request.get('status')
        action = self.request.get('action', None)
        if action not in self.BULK_ACTIONS:
            self.abort(404)

        # get authorised events 
        if org.is_global_admin:
            event_keys = list(event_db.Event.all(keys_only=True))
        elif org.is_local_admin:
            event_keys = org.incidents

        # handle bulk action
        fn = self.BULK_ACTIONS[action]
        for id in ids:
            site = Site.get_by_id(id)
            authorised = (
                site.event.key() in event_keys
                and (selected_org is None or any(
                    incident_key in event_keys for incident_key in [
                        incident.key() for incident in org.incidents
                    ])
                )
            )
            if authorised:
                fn(self, site, org=selected_org, status=status)

        # redirect back to work orders table
        self.redirect('/admin-view-work-orders')
コード例 #13
0
    def dispatch(self, *args, **kwargs):
        " All requests must have valid, in-date activation codes. "

        self.page_blocks = page_db.get_page_block_dict()

        self.activation_code = self.request.get('code')
        if not self.activation_code:
            self.abort(404)

        # lookup org by activation code
        orgs_by_code = Organization.all() \
            .filter('activation_code', self.activation_code)
        if orgs_by_code.count() != 1:
            self.abort(404)
        self.org_by_code = orgs_by_code[0]

        # send response if already activated
        if self.org_by_code.is_active:
            self.render(already_activated_template, org=self.org_by_code)
            return

        # send response if too late
        if self.org_by_code.activate_by < datetime.datetime.utcnow():
            self.render(activation_too_late_template, org=self.org_by_code)
            return

        # continue handling request
        super(ActivationHandler, self).dispatch(*args, **kwargs)
コード例 #14
0
def main():
    employer = Employer('Victa Kironde', 25, 'male', 'LFA')
    organization = Organization('Andela', 'www.andela.com')
    employer.work_for(organization)
    #add subordinates
    employee = Employee('Bruce Bigirwenkya', 22, 'male', 'Fellow')
    employer.hire(employee)
    employer.hire(Employee('Daniel', 22, 'male', 'Developer'))
    employer.hire(Employee('Joshua', 18, 'male', 'Fellow'))
    employer.hire(Employee('Martina', 19, 'female', 'fellow'))
    employer.hire(Employee('Joshua', 20, 'male', 'Supervisor'))

    print("\n_____________________")
    print("Organization")
    print("---XXX---")
    print("Name: " + employer.organization.name)
    print("Address: " + employer.organization.web_address)
    print("\n_____________________")
    print("Details of employer:")
    print("---XXX---")
    print("Name: " + employer.name)
    print("Age: " + str(employer.age))
    print("Gender: " + employer.gender)
    print("Title: " + employer.title)
    print("Number of subordinates:" + str(len(employer.subordinates)))
    print("\n_____________________")
    print("Show polymorphism:")
    print("---XXX---")
    print("Message for employee:" + employee.message())
    print("Message for employer:" + employer.message())
コード例 #15
0
def get_event_admins(event):
    global_admins = get_global_admins()
    local_admins = Organization.gql(
        'WHERE incidents = :1 AND is_admin = True AND name != :2',
        event.key(), 'Admin'
    )
    return global_admins + list(local_admins)
コード例 #16
0
    def get_organizations(self, search=""):
        """Get a list of your :class:`organizations <tracker_client.organization.Organization>`.

        Note that the optional search term is supplied as part of the GraphQL query variables and
        affects the API response received, rather than filtering results client-side.

        :param str search: Search term to filter results with. For example, supplying
            the string "canada" would return only Organizations containing "canada" in their name.
        :return: A list of your organizations.
        :rtype: list[Organization]
        :raises ValueError: if your organizations can't be retrieved.
        """
        params = {"after": "", "search": search}
        has_next = True
        org_list = []

        # The maximum number of organizations that can be requested at once is 100
        # This loop gets 100 orgs, checks if there are more, and if there are
        # it gets another 100 starting after the last org it got
        while has_next:
            result = self.execute_query(queries.GET_ALL_ORGS, params)

            if "error" in result:
                print("Server error: ", result)
                raise ValueError("Unable to get your organizations.")

            for edge in result["findMyOrganizations"]["edges"]:
                org_list.append(Organization(self, **edge["node"]))

            has_next = result["findMyOrganizations"]["pageInfo"]["hasNextPage"]
            params["after"] = result["findMyOrganizations"]["pageInfo"][
                "endCursor"]

        return org_list
コード例 #17
0
    def test_global_efficiency(self):
        orga = Organization()
        orga.add_layer(1, size=2, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=0.6)
        orga.add_layer(3, size=5, efficiency_weight=0.2)

        orga.layers[1].employees = [emp(25, 8.0), emp(25, 9.0)]
        orga.layers[2].employees = [emp(25, 7.0), emp(25, 2.0), emp(25, 7.0)]
        orga.layers[3].employees = [emp(25, 6.0), emp(25, 5.5), emp(25, 10.0), None, emp(25, 7.0)]

        self.assertEquals(100 * ((8.0 + 9.0) * 1.0 + (7.0 + 2.0 + 7.0) * 0.6 + (6.0 + 5.5 + 10.0 + 7.0) * 0.2) /
                                 (orga.workforce() * orga.maximum_efficiency()),
                          orga.global_efficiency())
コード例 #18
0
ファイル: user.py プロジェクト: julianpistorius/back-end-api
    def join_organization(self, organization_id):
        """
        add user to organization
        :param organization_id: string uuid
        :return: list of tuple of interests
        """
        #TODO exception handling
        org = Organization()
        org.id = organization_id

        user_org_relationship = Relationship(self.user_node,
                                             GraphRelationship.MEMBER_OF,
                                             org.org_node)
        try:
            self._graph_db.create_unique(user_org_relationship)
        except:
            print sys.exc_info()[0]
コード例 #19
0
	def check_node_existence(self, data):
		"""Checks if the nodes for the relationship exists, if not creates new nodes."""
		
		if data:
			permalinks = [
							(data.get('OrganizationAcquireeID'), data.get('AcquireePrimaryRole')),
							(data.get('OrganizationAcquirerID'), data.get('AcquirerPrimaryRole'))
							]

			for permalink, label in permalinks:
				permalink = Transform.to_str(permalink)
				label = Transform.to_str(label)
				try:
					organization = Organization()
					organization.check_create_organization_node(label, permalink)
				except Exception as e:
					pass
コード例 #20
0
    def test_maximum_efficiency(self):
        orga = Organization()
        orga.add_layer(1, size=2, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=0.6)
        orga.add_layer(3, size=5, efficiency_weight=0.2)

        self.assertEquals((2*10*1.0 + 3*10*0.6 + 5*10*0.2) / 10, orga.maximum_efficiency())
コード例 #21
0
    def test_workforce(self):
        orga = Organization()
        orga.add_layer(1, size=2, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=1.0)
        orga.add_layer(3, size=5, efficiency_weight=1.0)

        self.assertEquals(10, orga.workforce())
コード例 #22
0
ファイル: app_server.py プロジェクト: WrongChao/pritunl
    def _fill_cache(self):
        logger.info('Preloading cache...')
        from organization import Organization
        for org in Organization.iter_orgs():
            org._cache_users()

        from server import Server
        for server in Server.iter_servers():
            server.load()
コード例 #23
0
ファイル: orgs.py プロジェクト: ostwald/python-lib
	def __init__ (self):
		"""
		"""
		self.data = {}
		resp = self.getResponse()
		
		for item in resp:
			org = Organization (item)
			self.data[org.acronym] = org
コード例 #24
0
    def get_organization(self, id):
        response = requests.get(self.base_url + str(id), params=self.params)
        response.raise_for_status()

        data = response.json()['data']
        name = data['name']
        latitude, longitude = self.address_to_coords(data['address'])

        return Organization(id, name, latitude, longitude)
コード例 #25
0
ファイル: server.py プロジェクト: cDoru/pritunl
    def _generate_ovpn_conf(self):
        if not self.get_orgs():
            raise ValueError('Ovpn conf cannot be generated without ' + \
                'any organizations')

        logger.debug('Generating server ovpn conf. %r' % {
            'server_id': self.id,
        })

        if not self.primary_organization or not self.primary_user:
            self._create_primary_user()

        if not os.path.isfile(self.dh_param_path):
            self._generate_dh_param()

        primary_org = Organization(self.primary_organization)
        primary_user = primary_org.get_user(self.primary_user)

        self.generate_ca_cert()
        self._generate_tls_verify()

        if self.local_network:
            push = 'route %s %s' % self._parse_network(
                self.local_network)
        else:
            push = 'redirect-gateway'

        with open(self.ovpn_conf_path, 'w') as ovpn_conf:
            ovpn_conf.write(OVPN_SERVER_CONF % (
                self.port,
                self.protocol,
                self.interface,
                self.ca_cert_path,
                primary_user.cert_path,
                primary_user.key_path,
                self.tls_verify_path,
                self.dh_param_path,
                '%s %s' % self._parse_network(self.network),
                self.ifc_pool_path,
                push,
                self.ovpn_status_path,
                4 if self.debug else 1,
                8 if self.debug else 3,
            ))
コード例 #26
0
    def __init__(self):
        """
        Constructor for SearchZendesk class
        """
        self.main_choices = {
            1: "Select 1 to search Zendesk",
            2: "Select 2 to view a list of searchable fields",
            3: "Exit"
        }  # main menu choices

        self.sub_choices = {
            1: "Select 1 to search users",
            2: "Select 2 to search tickets",
            3: "Select 3 to search organizations",
            4: "Select 4 to go back to main menu"
        }  # search menu choices

        self.user = User()  # instantiates user class
        self.ticket = Ticket()  # instantiates ticket class
        self.organization = Organization()  # instantiates organization class
コード例 #27
0
ファイル: user.py プロジェクト: julianpistorius/back-end-api
    def user_orgs(self):
        """

        :return:
        """
        user_orgs = self._graph_db.match(start_node=self.user_node,
                                        rel_type=GraphRelationship.MEMBER_OF,
                                        end_node=None)
        orgs_list = []
        for rel in user_orgs:
            org_properties = dict(rel.end_node.properties)
            org = Organization()
            org.id = org_properties['id']
            interests = org.org_interests
            interests_list = []
            for interest in interests:
                interests_list.append(interest['name'])
            org_properties['interests'] = interests_list
            orgs_list.append(org_properties)
        return orgs_list
コード例 #28
0
    def create_organization(self, name, latitude, longitude):
        address = self.coords_to_address(latitude, longitude)
        data = {'name': name, 'address': address}

        response = requests.post(self.base_url, data=data, params=self.params)
        response.raise_for_status()

        id = response.json()['data']['id']
        organization = Organization(id, name, latitude, longitude)

        return organization
コード例 #29
0
ファイル: csv2rdf.py プロジェクト: RPOD/CSV2RDF
 def parseCordisOrganizationRDF(self, entry, graph):
     Organization = namedtuple('Organization', 'identifier, referenceID, projectName, role, name, shortName, country, activityType, endOfParticipation, city, postalCode, street, homepage, contact, id')
     org = []
     org.append(entry[0])
     org.append(entry[1])
     org.append(entry[2])
     org.append(entry[3])
     org.append(entry[5])
     org.append(entry[6])
     if len(entry[10]) > 1:
         org.append(self.alpha2Name(entry[10]))
     else:
         org.append('')
     org.append(entry[7])
     org.append(entry[8])
     org.append('http://dbpedia.org/page/' + parse.quote(self.capitalizeAll(self.setLiterals(entry[12]))))
     org.append(entry[13])
     org.append( entry[11])
     org.append((entry[14][:4] != 'http')*'http://' + entry[14])
     org.append(parse.quote_plus(entry[17] + entry[18] + entry[6]))
     org.append(entry[4])
     organization = Organization(*org)
     """
     Create triples
     """
     if len(organization.id) > 1:
         orgRDF = CORG[self.setLiterals(organization.id)]
     else:
         orgRDF = CORG[parse.quote_plus(organization.name)]
     graph.add((orgRDF, RDF.type, FOAF.Organization))
     graph.add((orgRDF, CORDIS.organizationName, Literal(self.setLiterals(organization.name))))
     graph.add((orgRDF, CORDIS.organizationShortName, Literal(self.setLiterals(organization.shortName))))
     if len(organization.country) > 1:
         graph.add((orgRDF, CORDIS.organizationCountry, DBR[self.setLiterals(organization.country)]))
     if len(organization.activityType) > 1:
         graph.add((orgRDF, CORDIS.activityType, Literal(self.setLiterals(organization.activityType))))
     if len(organization.endOfParticipation) > 1:
         graph.add((orgRDF, CORDIS.endOfParticipation, Literal(self.setLiterals(organization.endOfParticipation))))
     if len(organization.city) > 1:
         graph.add((orgRDF, DBO.locationCity, URIRef(organization.city)))
     if len(organization.street) > 1:
         graph.add((orgRDF, DBO.address, Literal(self.setLiterals(organization.street))))
     if len(organization.postalCode) > 1:
         graph.add((orgRDF, DBO.postalCode, Literal(self.setLiterals(organization.postalCode))))
     if len(organization.homepage) > 1:
         if ';' in organization.homepage:
             for homepage in organization.homepage.split(';'):
                     graph.add((orgRDF, FOAF.homepage, URIRef(self.setLiterals(homepage).replace('"', '').replace("'",''))))
         if ',' in organization.homepage:
             for homepage in organization.homepage.split(','):
                     graph.add((orgRDF, FOAF.homepage, URIRef(self.setLiterals(homepage).replace('"', '').replace("'",''))))
     if len(organization.contact) > 1:
         graph.add((orgRDF, FOAF.person, CPEO[organization.contact]))
     return organization
コード例 #30
0
ファイル: server.py プロジェクト: monsterChen/pritunl
 def get_org(self, org_id):
     if org_id in self.organizations:
         org = Organization.get_org(id=org_id)
         try:
             org.load()
         except IOError:
             logger.exception('Failed to load org conf. %r' % {
                     'org_id': org_id,
                 })
             return
         return org
コード例 #31
0
    def _remove_primary_user(self):
        logger.debug("Removing primary user. %r" % {"server_id": self.id})
        primary_organization = self.primary_organization
        primary_user = self.primary_user
        self.primary_organization = None
        self.primary_user = None

        if not primary_organization or not primary_user:
            return

        org = Organization(primary_organization)
        user = org.get_user(primary_user)
        if not user:
            logger.debug(
                "Primary user not found, skipping remove. %r"
                % {"server_id": self.id, "org_id": org.id, "user_id": user.id}
            )
            return

        if user:
            user.remove()
コード例 #32
0
ファイル: event_db.py プロジェクト: DuaneNClark/crisiscleanup
  def organizations(self):
      """
      Active, verified organizations related to this incident.

      Handles current and legacy incident/s properties.
      """
      from organization import Organization  # avoid circular import

      # lookup using new incidents field
      orgs = list(
          Organization.all().filter('incidents', self.key())
              .filter('org_verified', True)
              .filter('is_active', True)
      )

      # build list of id and look for global admin
      org_ids = set()
      seen_global_admin = False
      for org in orgs:
          if org.is_global_admin:
              seen_global_admin = True
          org_id = org.key().id()
          if org_id not in org_ids:
              org_ids.add(org_id)

      # check legacy incident field
      legacy_field_orgs = Organization.all().filter('incident', self.key()) \
          .filter('org_verified', True) \
          .filter('is_active', True)
      for org in legacy_field_orgs:
          if org.key().id() not in org_ids:
              orgs.append(org)

      # prepend global admin if not encountered
      if not seen_global_admin:
          orgs = (
              list(Organization.all().filter('name', 'Admin')) +
              orgs
          )
      return orgs
コード例 #33
0
def run_process():
    """."""

    try:

        Organization.run()
        Fund.run()
        Person.run()
        FundingRound.run()
        HasAcquired.run()
        Funding.run()
        HasFund.run()
        Investment.run()
        HasAffiliation.run()
        HasStudiedat.run()

    except Exception as e:
        logger = Logger()
        logger.logg(debug_msg='Error while running cron job.',
                    info_msg='Function = run_process()',
                    warning_msg='Error in executing scheduled job',
                    error_msg='Module = ' + log_file,
                    critical_msg=str(e))
コード例 #34
0
ファイル: server.py プロジェクト: monsterChen/pritunl
    def iter_orgs(self):
        orgs_dict = {}
        orgs_sort = []

        for org_id in self.organizations:
            org = Organization.get_org(id=org_id)
            if not org:
                continue
            name_id = '%s_%s' % (org.name, org.id)
            orgs_dict[name_id] = org
            orgs_sort.append(name_id)

        for name_id in sorted(orgs_sort):
            yield orgs_dict[name_id]
コード例 #35
0
ファイル: server.py プロジェクト: gourneau/pritunl
 def get_orgs(self):
     orgs = []
     for org_id in self.organizations:
         org = Organization(org_id)
         if not os.path.isfile(org.ca_cert.cert_path):
             logger.warning('Removing non existent organization ' + \
                 'from server. %r' % {
                     'server_id': self.id,
                     'org_id': org_id,
                 })
             self.remove_org(org_id)
             continue
         orgs.append(org)
     return orgs
コード例 #36
0
class TreeHuffman:
    listOrd = Organization.setlistwords(
        list(str(input("Digite uma série de caracteres: "))))
    while len(listOrd) != 1:
        listOrd = buildingTree(listOrd)

    listPilha = []
    huffmanList = []
    valoresHuffman = []
    huffmanList = huffmanCod(listOrd[0], listPilha, huffmanList,
                             valoresHuffman)
    print(huffmanList)
    csvHuffman(huffmanList)
    jsonOrd = json.dumps(listOrd)
    print("\n\n", jsonOrd)
コード例 #37
0
    def get_organizations(self):
        response = requests.get(self.base_url, params=self.params)
        response.raise_for_status()

        organizations = {}
        data = response.json()['data']

        for entry in data:
            id = int(entry['id'])
            name = entry['name']
            latitude, longitude = self.address_to_coords(entry['address'])

            organizations[id] = Organization(id, name, latitude, longitude)

        return organizations
コード例 #38
0
ファイル: server.py プロジェクト: cDoru/pritunl
    def _remove_primary_user(self):
        logger.debug('Removing primary user. %r' % {
            'server_id': self.id,
        })
        primary_organization = self.primary_organization
        primary_user = self.primary_user
        self.primary_organization = None
        self.primary_user = None

        if not primary_organization or not primary_user:
            return

        org = Organization(primary_organization)
        user = org.get_user(primary_user)
        if not user:
            logger.debug('Primary user not found, skipping remove. %r' % {
                'server_id': self.id,
                'org_id': org.id,
                'user_id': user.id,
            })
            return

        if user:
            user.remove()
コード例 #39
0
ファイル: server.py プロジェクト: gourneau/pritunl
    def _remove_primary_user(self):
        logger.debug('Removing primary user. %r' % {
            'server_id': self.id,
        })
        primary_organization = self.primary_organization
        primary_user = self.primary_user
        self.primary_organization = None
        self.primary_user = None

        if not primary_organization or not primary_user:
            return

        org = Organization(primary_organization)
        user = org.get_user(primary_user)
        if not user:
            logger.debug('Primary user not found, skipping remove. %r' % {
                'server_id': self.id,
                'org_id': org.id,
                'user_id': user.id,
            })
            return

        if user:
            user.remove()
コード例 #40
0
ファイル: trelloclient.py プロジェクト: gEndelf/py-trello
    def list_organizations(self):
        """
        Returns all organizations for your Trello user

        :return: a list of Python objects representing the Trello organizations.
        Each organization has the following noteworthy attributes:
            - id: the organization's identifier
            - name: Name of the organization
            - desc: Description of the organization (optional - may be missing from the
                    returned JSON)
            - closed: Boolean representing whether this organization is closed or not
            - url: URL to the organization
        """
        json_obj = self.fetch_json('members/me/organizations')
        return [Organization.from_json(self, obj) for obj in json_obj]
コード例 #41
0
ファイル: server.py プロジェクト: gourneau/pritunl
 def add_org(self, org_id):
     logger.debug('Adding organization to server. %r' % {
         'server_id': self.id,
         'org_id': org_id,
     })
     org = Organization(org_id)
     if org.id in self.organizations:
         logger.debug('Organization already on server, skipping. %r' % {
             'server_id': self.id,
             'org_id': org.id,
         })
         return
     self.organizations.append(org.id)
     self.commit()
     Event(type=SERVERS_UPDATED)
     Event(type=SERVER_ORGS_UPDATED, resource_id=self.id)
コード例 #42
0
ファイル: server.py プロジェクト: bitland/pritunl
    def _remove_primary_user(self):
        logger.debug('Removing primary user. %r' % {
            'server_id': self.id,
        })

        if not self.primary_organization or not self.primary_user:
            return

        org = Organization.get_org(id=self.primary_organization)
        if org:
            user = org.get_user(id=self.primary_user)
            if user:
                user.remove()

        self.primary_organization = None
        self.primary_user = None
コード例 #43
0
    def get_organization(self, name):
        """Get an :class:`~tracker_client.organization.Organization` from specified name. You must be a member of that
        organization.

        :param str name: name of organization to get and construct :class:`~tracker_client.organization.Organization` for.
        :return: The specified organization.
        :rtype: Organization
        :raises ValueError: if an invalid organization name is given.
        """
        params = {"orgSlug": slugify(name)}
        result = self.execute_query(queries.GET_ORG, params)

        if "error" in result:
            print("Server error: ", result)
            raise ValueError("Unable to get organization " + name)

        return Organization(self, **result["findOrganizationBySlug"])
コード例 #44
0
    def _upgrade_data(self):
        from pritunl import __version__
        version = '0.10.1'
        version_path = os.path.join(self.data_path, VERSION_NAME)
        if os.path.isfile(version_path):
            with open(version_path, 'r') as version_file:
                version = version_file.readlines()[0].strip()

        if version == '0.10.1':
            logger.info('Upgrading data from v0.10.1...')
            from organization import Organization
            for org in Organization.get_orgs():
                for user in org.get_users():
                    user._upgrade_0_10_2()

        if version != __version__:
            with open(version_path, 'w') as version_file:
                version = version_file.write('%s\n' % __version__)
コード例 #45
0
ファイル: app_server.py プロジェクト: gourneau/pritunl
    def _upgrade_data(self):
        from pritunl import __version__
        version = '0.10.1'
        version_path = os.path.join(self.data_path, VERSION_NAME)
        if os.path.isfile(version_path):
            with open(version_path, 'r') as version_file:
                version = version_file.readlines()[0].strip()

        if version == '0.10.1':
            logger.info('Upgrading data from v0.10.1...')
            from organization import Organization
            for org in Organization.get_orgs():
                for user in org.get_users():
                    user._upgrade_0_10_2()

        if version != __version__:
            with open(version_path, 'w') as version_file:
                version = version_file.write('%s\n' % __version__)
コード例 #46
0
ファイル: server.py プロジェクト: ogrishman/pritunl
 def add_org(self, org_id):
     logger.debug('Adding organization to server. %r' % {
         'server_id': self.id,
         'org_id': org_id,
     })
     org = Organization.get_org(id=org_id)
     if org.id in self.organizations:
         logger.debug('Organization already on server, skipping. %r' % {
             'server_id': self.id,
             'org_id': org.id,
         })
         return org
     self.organizations.append(org.id)
     self.commit()
     Event(type=SERVERS_UPDATED)
     Event(type=SERVER_ORGS_UPDATED, resource_id=self.id)
     Event(type=USERS_UPDATED, resource_id=org_id)
     return org
コード例 #47
0
    def test_promote(self):
        hypothesis = MockHypothesis()
        orga = Organization()
        orga.set_strategies(hypothesis=hypothesis, strategy=BestStrategy())
        orga.add_layer(1, size=1, efficiency_weight=1.0)
        orga.add_layer(2, size=3, efficiency_weight=1.0)

        best_employee = emp(38, 7.5)
        worst_employee = emp(25, 3.0)
        average_employee = emp(49, 6.3)

        # layer 1 has a vacancy
        orga.layers[2].employees = [worst_employee, best_employee, average_employee]

        orga.promote(origin=orga.layers[2], destination=orga.layers[1])

        self.assertEquals([best_employee],                          orga.layers[1].employees)
        self.assertEquals([worst_employee, None, average_employee], orga.layers[2].employees)
        self.assertTrue(hypothesis.called)
        self.assertEquals(7.5, orga.layers[1].employees[0].competence)
    def AuthenticatedPost(self, org, _):
        global_admin = False
        local_admin = False

        if org.name == GLOBAL_ADMIN_NAME:
            global_admin = True
        if org.is_admin == True and global_admin == False:
            local_admin = True

        if global_admin == False and local_admin == False:
            self.redirect("/")
            return

        # create form
        form = (GlobalAdminCreateOrganizationForm(self.request.POST)
                if global_admin else CreateOrganizationForm(self.request.POST))
        events = self._get_events(org, global_admin, local_admin)
        form.incident.choices = [(str(event.key().id()), event.name)
                                 for event in events]

        if form.validate() and not form.errors:
            # create new org
            event = event_db.Event.get_by_id(int(form.incident.data))
            new_org = Organization(name=form.name.data, )
            new_org.incidents = [event.key()]
            new_org.save()
            del (form.incident)
            del (form.incidents)
            form.populate_obj(new_org)
            new_org.save()
            organization.PutAndCache(new_org)

            # redirect to the add contact page
            self.redirect('/admin-create-contact?selected_org=%d' %
                          new_org.key().id())
        else:
            self.response.out.write(
                template.render({
                    "form": form,
                    "global_admin": global_admin,
                }))
    def AuthenticatedPost(self, org, _):
        global_admin = False
        local_admin = False
        
        if org.name == GLOBAL_ADMIN_NAME:
            global_admin = True
        if org.is_admin == True and global_admin == False:
            local_admin = True
            
        if global_admin == False and local_admin == False:
            self.redirect("/")
            return

        # create form
        form = (
            GlobalAdminCreateOrganizationForm(self.request.POST) if global_admin
            else CreateOrganizationForm(self.request.POST)
        )
        events = self._get_events(org, global_admin, local_admin)
        form.incident.choices = [(str(event.key().id()), event.name) for event in events]

        if form.validate() and not form.errors:
            # create new org
            event = event_db.Event.get_by_id(int(form.incident.data))
            new_org = Organization(
                name=form.name.data,
            )
            new_org.incidents = [event.key()]
            new_org.save()
            del(form.incident)
            del(form.incidents)
            form.populate_obj(new_org)
            new_org.save()
            organization.PutAndCache(new_org)

            # redirect to the add contact page
            self.redirect('/admin-create-contact?selected_org=%d' % new_org.key().id())
        else:
            self.response.out.write(template.render({
                "form": form,
                "global_admin": global_admin,
            }))
コード例 #50
0
ファイル: csv2rdf.py プロジェクト: RPOD/CSV2RDF
 def parseCordisOrganization(self, entry):
     Organization = namedtuple('Organization', 'identifier, referenceID, projectName, role, name, shortName, country, activityType, endOfParticipation, city, postalCode, street, homepage, contact')
     org = []
     org.append(entry[0])
     org.append(entry[1])
     org.append(entry[2])
     org.append(entry[3])
     org.append(entry[5])
     org.append(entry[6])
     if len(entry[10]) > 1:
         org.append(self.alpha2Name(entry[10]))
     else:
         org.append('')
     org.append(entry[7])
     org.append(entry[8])
     org.append('http://dbpedia.org/page/' + self.capitalizeAll(entry[12]))
     org.append(entry[13])
     org.append( entry[11])
     org.append((entry[14][:4] != 'http')*'http://' + entry[14])
     org.append(parse.quote_plus(entry[17] + entry[18] + entry[6]))
     output = Organization(*org)
     return [self.createOrganizationOutput(output), output.name, [output.role, output.identifier, output.name]]
コード例 #51
0
ファイル: commands.py プロジェクト: biggtfish/alauda-CLI
def organization_update(name, company):
    orgs = Organization.fetch(name)
    orgs.update(company)
コード例 #52
0
def create_work_order_search_form(events, work_types, limiting_event=None):
    events_by_recency = sorted(events, key=lambda event: event.key().id(), reverse=True)

    # determine orgs and work types to include
    if limiting_event:
        if limiting_event.key() not in [e.key() for e in events]:
            raise Exception("Event %s unavailable" % limiting_event)
        orgs = Organization.all().filter('incidents', limiting_event.key())
        work_types = [
            site.work_type for site
            in Query(Site, projection=['work_type'], distinct=True) \
                .filter('event', limiting_event.key())
            if site.work_type in work_types
        ]
    else:
        orgs = Organization.all().filter('incidents in', [event for event in events])

    class WorkOrderSearchForm(Form):

        def __init__(self, *args, **kwargs):
            super(WorkOrderSearchForm, self).__init__(*args, **kwargs)
            self.offset.data = 0  # offset set by the form should always be 0

        offset = HiddenField(default="0")
        order = HiddenField()
        event = SelectField(
            choices=[
                (e.key(), e.name) for e in events_by_recency
            ],
            default=events_by_recency[0].key()
        )
        query = TextField("Search")
        reporting_org = SelectField(
            choices=[('', '')] + [
                (org.key(), org.name) for org in orgs
            ],
            default=''
        )
        claiming_org = SelectField(
            choices=[('', '')] + [
                (org.key(), org.name) for org in orgs
            ],
            default=''
        )
        work_type = SelectField(
            choices=[('', '')] + [
                (work_type, work_type) for work_type in work_types
            ],
            default=''
        )
        status = SelectField(
            choices=[('', '')] + [
                (s, s) for s in Site.status.choices
            ],
            default=''
        )
        per_page = SelectField(
            choices=[
                (n, n) for n in [10, 50, 100, 250]
            ],
            coerce=int,
            default=10
        )

    return WorkOrderSearchForm
コード例 #53
0
ファイル: server.py プロジェクト: bitland/pritunl
 def get_org(self, org_id):
     if org_id in self.organizations:
         return Organization.get_org(id=org_id)
コード例 #54
0
ファイル: server.py プロジェクト: bitland/pritunl
    def _generate_ovpn_conf(self, temp_path):
        logger.debug('Generating server ovpn conf. %r' % {
            'server_id': self.id,
        })

        if not self.primary_organization or not self.primary_user:
            self._create_primary_user()

        primary_org = Organization.get_org(id=self.primary_organization)
        if not primary_org:
            self._create_primary_user()
            primary_org = Organization.get_org(id=self.primary_organization)

        primary_user = primary_org.get_user(self.primary_user)
        if not primary_user:
            self._create_primary_user()
            primary_org = Organization.get_org(id=self.primary_organization)
            primary_user = primary_org.get_user(self.primary_user)

        tls_verify_path = os.path.join(temp_path,
            TLS_VERIFY_NAME)
        user_pass_verify_path = os.path.join(temp_path,
            USER_PASS_VERIFY_NAME)
        client_connect_path = os.path.join(temp_path,
            CLIENT_CONNECT_NAME)
        client_disconnect_path = os.path.join(temp_path,
            CLIENT_DISCONNECT_NAME)
        ovpn_status_path = os.path.join(temp_path,
            OVPN_STATUS_NAME)
        ovpn_conf_path = os.path.join(temp_path,
            OVPN_CONF_NAME)

        auth_host = app_server.bind_addr
        if auth_host == '0.0.0.0':
            auth_host = 'localhost'
        for script, script_path in (
                    (TLS_VERIFY_SCRIPT, tls_verify_path),
                    (USER_PASS_VERIFY_SCRIPT, user_pass_verify_path),
                    (CLIENT_CONNECT_SCRIPT, client_connect_path),
                    (CLIENT_DISCONNECT_SCRIPT, client_disconnect_path),
                ):
            with open(script_path, 'w') as script_file:
                os.chmod(script_path, 0755) # TODO
                script_file.write(script % (
                    app_server.local_api_key,
                    '/dev/null', # TODO
                    app_server.web_protocol,
                    auth_host,
                    app_server.port,
                    self.id,
                ))

        push = ''
        if self.mode == LOCAL_TRAFFIC:
            for network in self.local_networks:
                push += 'push "route %s %s"\n' % self._parse_network(network)
        elif self.mode == VPN_TRAFFIC:
            pass
        else:
            push += 'push "redirect-gateway"\n'
        for dns_server in self.dns_servers:
            push += 'push "dhcp-option DNS %s"\n' % dns_server
        if self.search_domain:
            push += 'push "dhcp-option DOMAIN %s"\n' % self.search_domain

        server_conf = OVPN_INLINE_SERVER_CONF % (
            self.port,
            self.protocol,
            self.interface,
            tls_verify_path,
            client_connect_path,
            client_disconnect_path,
            '%s %s' % self._parse_network(self.network),
            ovpn_status_path,
            4 if self.debug else 1,
            8 if self.debug else 3,
        )

        if self.otp_auth:
            server_conf += 'auth-user-pass-verify %s via-file\n' % (
                user_pass_verify_path)

        if self.lzo_compression:
            server_conf += 'comp-lzo\npush "comp-lzo"\n'

        if self.mode in (LOCAL_TRAFFIC, VPN_TRAFFIC):
            server_conf += 'client-to-client\n'

        if push:
            server_conf += push

        server_conf += '<ca>\n%s\n</ca>\n' % utils.get_cert_block(
            self.ca_certificate)
        server_conf += '<cert>\n%s\n</cert>\n' % utils.get_cert_block(
            primary_user.certificate)
        server_conf += '<key>\n%s\n</key>\n' % primary_user.private_key
        server_conf += '<dh>\n%s\n</dh>\n' % self.dh_params

        with open(ovpn_conf_path, 'w') as ovpn_conf:
            os.chmod(ovpn_conf_path, 0600)
            ovpn_conf.write(server_conf)
コード例 #55
0
ファイル: pooler.py プロジェクト: bitland/pritunl
 def _fill_orgs_pool(self):
     for _ in xrange(app_server.org_pool_size -
             Organization.get_org_pool_count()):
         Organization(pool=True)
コード例 #56
0
ファイル: node_server.py プロジェクト: ogrishman/pritunl
    def _generate_ovpn_conf(self):
        if not self.org_count:
            raise ServerMissingOrg('Ovpn conf cannot be generated without ' + \
                'any organizations', {
                    'server_id': self.id,
                })

        logger.debug('Generating node server ovpn conf. %r' % {
            'server_id': self.id,
        })

        if not self.primary_organization or not self.primary_user:
            self._create_primary_user()

        if not os.path.isfile(self.dh_param_path):
            self._generate_dh_param()

        primary_org = Organization.get_org(id=self.primary_organization)
        primary_user = primary_org.get_user(self.primary_user)

        self.generate_ca_cert()

        push = ''
        if self.local_networks:
            for network in self.local_networks:
                push += 'push "route %s %s"\n' % self._parse_network(network)
        else:
            push += 'push "redirect-gateway"\n'
        for dns_server in self.dns_servers:
            push += 'push "dhcp-option DNS %s"\n' % dns_server
        push = push.rstrip()

        server_conf = OVPN_INLINE_SERVER_CONF % (
            self.port,
            self.protocol,
            self.interface,
            '%s',
            '%s',
            '%s',
            '%s %s' % self._parse_network(self.network),
            '%s',
            push,
            '%s',
            4 if self.debug else 1,
            8 if self.debug else 3,
        )

        if self.otp_auth:
            server_conf += 'auth-user-pass-verify ' + \
                '<%= user_pass_verify_path %> via-file\n'

        if self.lzo_compression:
            server_conf += 'comp-lzo\npush "comp-lzo"\n'

        if self.local_networks:
            server_conf += 'client-to-client\n'

        server_conf += '<ca>\n%s\n</ca>\n' % utils.get_cert_block(
            self.ca_cert_path)
        server_conf += '<cert>\n%s\n</cert>\n' % utils.get_cert_block(
            primary_user.cert_path)
        server_conf += '<key>\n%s\n</key>\n' % open(
            primary_user.key_path).read().strip()
        server_conf += '<dh>\n%s\n</dh>\n' % open(
            self.dh_param_path).read().strip()

        return server_conf
コード例 #57
0
ファイル: commands.py プロジェクト: biggtfish/alauda-CLI
def organization_inspect(name):
    orgs = Organization.fetch(name)
    result = orgs.inspect()
    util.print_json_result(result)
コード例 #58
0
ファイル: commands.py プロジェクト: biggtfish/alauda-CLI
def organization_list():
    orgs_list = Organization.list()
    util.print_organization_ps_output(orgs_list)
コード例 #59
0
ファイル: commands.py プロジェクト: biggtfish/alauda-CLI
def organization_create(name, company):
    orgs = Organization(name=name, company=company)
    orgs.create()