コード例 #1
0
ファイル: idea.py プロジェクト: nessc/inphosite
    def _get_evaluation(self,
                        id,
                        id2,
                        uid=None,
                        username=None,
                        autoCreate=True):
        idea1 = h.fetch_obj(Idea, id, new_id=True)
        idea2 = h.fetch_obj(Idea, id2, new_id=True)

        # Get user information
        if uid:
            uid = h.fetch_obj(User, uid).ID
        elif username:
            user = h.get_user(username)
            uid = user.ID if user else abort(403)
        else:
            uid = h.get_user(request.environ['REMOTE_USER']).ID

        evaluation_q = Session.query(IdeaEvaluation)
        evaluation = evaluation_q.filter_by(ante_id=id, cons_id=id2,
                                            uid=uid).first()

        # if an evaluation does not yet exist, create one
        if autoCreate and not evaluation:
            evaluation = IdeaEvaluation(id, id2, uid)
            Session.add(evaluation)

        return evaluation
コード例 #2
0
    def create(self):
        if not h.auth.is_logged_in():
            abort(401)
        if not h.auth.is_admin():
            abort(403)

        valid_params = ["sep_dir", "wiki"]
        params = request.params.mixed()

        if '_method' in params:
            del params['_method']
        if 'label' in params:
            label = params['label']
            del params['label']
        else:
            abort(400)
        for k in params.keys():
            if k not in valid_params:
                abort(400)

        school_of_thought = SchoolOfThought(name, **params)
        Session.add(school_of_thought)
        Session.flush()

        # Issue an HTTP success
        response.status_int = 302
        response.headers['location'] = h.url(controller='school_of_thought',
                                             action='view',
                                             id=school_of_thought.ID)
        return "Moved temporarily"
コード例 #3
0
    def create(self):
        if not h.auth.is_logged_in():
            abort(401)
        if not h.auth.is_admin():
            abort(403)

        valid_params = ["sep_dir", "wiki"]
        params = request.params.mixed()

        if '_method' in params:
            del params['_method']
        if 'label' in params:
            label = params['label']
            del params['label']
        else:
            abort(400)
        for k in params.keys():
            if k not in valid_params:
                abort(400)

        school_of_thought = SchoolOfThought(name, **params)
        Session.add(school_of_thought)
        Session.flush()

        # Issue an HTTP success
        response.status_int = 302
        response.headers['location'] = h.url(controller='school_of_thought',
                                                 action='view', id=school_of_thought.ID)
        return "Moved temporarily"
コード例 #4
0
ファイル: idea.py プロジェクト: colinallen/inphosite
    def _get_anon_evaluation(self, id, id2, ip, autoCreate=True):
        idea1 = h.fetch_obj(Idea, id, new_id=True)
        idea2 = h.fetch_obj(Idea, id2, new_id=True)

        evaluation_q = Session.query(AnonIdeaEvaluation)
        evaluation = evaluation_q.filter_by(ante_id=id, cons_id=id2, ip=ip).first()

        # if an evaluation does not yet exist, create one
        if autoCreate and not evaluation:
            evaluation = AnonIdeaEvaluation(id, id2,ip)
            Session.add(evaluation)

        return evaluation
コード例 #5
0
ファイル: idea.py プロジェクト: nessc/inphosite
    def _get_anon_evaluation(self, id, id2, ip, autoCreate=True):
        idea1 = h.fetch_obj(Idea, id, new_id=True)
        idea2 = h.fetch_obj(Idea, id2, new_id=True)

        evaluation_q = Session.query(AnonIdeaEvaluation)
        evaluation = evaluation_q.filter_by(ante_id=id, cons_id=id2,
                                            ip=ip).first()

        # if an evaluation does not yet exist, create one
        if autoCreate and not evaluation:
            evaluation = AnonIdeaEvaluation(id, id2, ip)
            Session.add(evaluation)

        return evaluation
コード例 #6
0
ファイル: account.py プロジェクト: colinallen/inphosite
    def submit(self):
        ''' 
        This function validates the submitted registration form and creates a
        new user. Restricted to ``POST`` requests. If successful, redirects to 
        the result action to prevent resubmission.
        ''' 
        
        user = User(
            self.form_result['username'],
            fullname=self.form_result['fullname'],
            email=self.form_result['email'],
            first_area_id=self.form_result['first_area'],
            first_area_level=self.form_result['first_area_level'],
            second_area_id=self.form_result['second_area'],
            second_area_level=self.form_result['second_area_level']
        )


        Session.add(user) 
        password = user.reset_password()
        Session.commit()

        msg = Message("*****@*****.**", self.form_result['email'], 
                      "InPhO registration")
        msg.plain = """Dear %(name)s, 
Thank you for registering with the Indiana Philosophy Ontology Project (InPhO).

You can sign in at https://inpho.cogs.indiana.edu/signin with the following
information:

Username: %(uname)s
Password: %(passwd)s

You may change your password at https://inpho.cogs.indiana.edu/account/edit .

The Indiana Philosophy Ontology Project (InPhO) Team
[email protected]
                       """ % {'passwd' : password,
                              'uname' : user.username,
                              'name' : user.fullname or user.username or ''}
        msg.send()

        h.redirect(h.url(controller='account', action='result'))
コード例 #7
0
    def submit(self):
        ''' 
        This function validates the submitted registration form and creates a
        new user. Restricted to ``POST`` requests. If successful, redirects to 
        the result action to prevent resubmission.
        '''

        user = User(self.form_result['username'],
                    fullname=self.form_result['fullname'],
                    email=self.form_result['email'],
                    first_area_id=self.form_result['first_area'],
                    first_area_level=self.form_result['first_area_level'],
                    second_area_id=self.form_result['second_area'],
                    second_area_level=self.form_result['second_area_level'])

        Session.add(user)
        password = user.reset_password()
        Session.commit()

        msg = Message("*****@*****.**", self.form_result['email'],
                      "InPhO registration")
        msg.plain = """Dear %(name)s, 
Thank you for registering with the Indiana Philosophy Ontology Project (InPhO).

You can sign in at https://inphoproject.org/signin with the following
information:

Username: %(uname)s
Password: %(passwd)s

You may change your password at https://inphoproject.org/account/edit .

The Indiana Philosophy Ontology Project (InPhO) Team
[email protected]
                       """ % {
            'passwd': password,
            'uname': user.username,
            'name': user.fullname or user.username or ''
        }
        msg.send()

        h.redirect(h.url(controller='account', action='result'))
コード例 #8
0
ファイル: entity.py プロジェクト: inpho/inphosite
    def date(self, id, id2, filetype="json"):
        """
        Creates a date object, associated to the id with the relation type of
        id2.
        """
        try:
            date = self._get_date(id, id2)
        except DateException as e:
            # TODO: Cleanup this workaround for the Pylons abort function not
            # passing along error messages properly to the error controller.
            response.status = 400
            return str(e)

        try:
            Session.add(date)
            Session.commit()
        except IntegrityError:
            # skip over data integrity errors, since if the date is already in
            # the db, things are proceeding as intended.
            pass

        return "OK"
コード例 #9
0
    def date(self, id, id2, filetype='json'):
        """
        Creates a date object, associated to the id with the relation type of
        id2.
        """
        try:
            date = self._get_date(id, id2)
        except DateException as e:
            # TODO: Cleanup this workaround for the Pylons abort function not
            # passing along error messages properly to the error controller.
            response.status = 400
            return str(e)

        try:
            Session.add(date)
            Session.commit()
        except IntegrityError:
            # skip over data integrity errors, since if the date is already in
            # the db, things are proceeding as intended.
            pass

        return "OK"
コード例 #10
0
ファイル: idea.py プロジェクト: colinallen/inphosite
    def _get_evaluation(self, id, id2, uid=None, username=None, 
                        autoCreate=True):
        idea1 = h.fetch_obj(Idea, id, new_id=True)
        idea2 = h.fetch_obj(Idea, id2, new_id=True)

        # Get user information
        if uid:
            uid = h.fetch_obj(User, uid).ID
        elif username:
            user = h.get_user(username)
            uid = user.ID if user else abort(403)
        else:
            uid = h.get_user(request.environ['REMOTE_USER']).ID

        evaluation_q = Session.query(IdeaEvaluation)
        evaluation = evaluation_q.filter_by(ante_id=id, cons_id=id2, uid=uid).first()

        # if an evaluation does not yet exist, create one
        if autoCreate and not evaluation:
            evaluation = IdeaEvaluation(id, id2, uid)
            Session.add(evaluation)

        return evaluation
コード例 #11
0
ファイル: entity.py プロジェクト: inpho/inphosite
    def create(self, entity_type=None, filetype="html", valid_params=None):
        # check if user is logged in
        if not h.auth.is_logged_in():
            abort(401)
        if not h.auth.is_admin():
            abort(403)

        sep_dir = None
        params = request.params.mixed()
        if entity_type is None:
            entity_type = int(params["entity_type"])
            del params["entity_type"]

        if valid_params is None:
            if entity_type == 1:  # Idea
                valid_params = ["sep_dir", "searchstring", "searchpattern", "wiki"]
            elif entity_type == 3 or entity_type == 5:  # Thinker or Work
                valid_params = ["sep_dir", "wiki"]
            elif entity_type == 4:  # Journal
                valid_params = [
                    "ISSN",
                    "noesisInclude",
                    "URL",
                    "source",
                    "abbr",
                    "language",
                    "student",
                    "active",
                    "wiki",
                ]
            elif entity_type == 6:  # School of Thought
                valid_params = ["sep_dir", "wiki"]

        if "_method" in params:
            del params["_method"]
        if "redirect" in params:
            del params["redirect"]

        if "sep_dir" in params:
            sep_dir = params["sep_dir"]
            del params["sep_dir"]
        if "label" in params:
            label = params["label"]
            del params["label"]
        elif "name" in params:
            label = params["name"]
            del params["name"]
        else:
            abort(400)
        for k in params.keys():
            if k not in valid_params:
                abort(400)

        # If entity exists, redirect and return HTTP 302
        c.entity = Session.query(Entity).filter(Entity.label == label).first()
        if c.entity:
            redirect(c.entity.url(filetype, action="view"), code=302)
        else:
            # Entity doesn't exist, create a new one.
            if entity_type == 1:
                c.entity = Idea(label, sep_dir=sep_dir)
            elif entity_type == 3:
                c.entity = Thinker(label, sep_dir=sep_dir)
            elif entity_type == 4:
                c.entity = Journal(label, sep_dir=sep_dir)
            elif entity_type == 5:
                c.entity = Work(label, sep_dir=sep_dir)
            elif entity_type == 6:
                c.entity = SchoolOfThought(label, sep_dir=sep_dir)
            else:
                raise NotImplementedError

            Session.add(c.entity)
            Session.commit()
            if redirect:
                sleep(5)  # TODO: figure out database slowness so this can be removed
                redirect(c.entity.url(filetype, action="view"), code=303)
            else:
                return "200 OK"
コード例 #12
0
    def create(self, entity_type=None, filetype='html', valid_params=None): 
        # check if user is logged in
        if not h.auth.is_logged_in():
            abort(401)
        if not h.auth.is_admin():
            abort(403)
        
        sep_dir = None 
        params = request.params.mixed()
        if entity_type is None:
            entity_type = int(params['entity_type'])
            del params['entity_type']

        if valid_params is None:
            if entity_type == 1: # Idea
                valid_params = ["sep_dir", "searchstring", "searchpattern",
                                "wiki"]
            elif entity_type == 3 or entity_type == 5: # Thinker or Work
                valid_params = ["sep_dir", "wiki"]
            elif entity_type == 4: # Journal
                valid_params = ["ISSN", "noesisInclude", "URL", "source",
                "abbr", "language", "student", "active", "wiki"]
            elif entity_type == 6: #School of Thought
                valid_params = ["sep_dir", "wiki"]
                
                
        if '_method' in params:
            del params['_method']
        if 'redirect' in params:
            del params['redirect']
        
        if 'sep_dir' in params:
            sep_dir = params['sep_dir']
            del params['sep_dir']
        if 'label' in params:
            label = params['label']
            del params['label']
        elif 'name' in params:
            label = params['name']
            del params['name']
        else:
            abort(400)
        for k in params.keys():
            if k not in valid_params:
                abort(400)

        # If entity exists, redirect and return HTTP 302
        c.entity = Session.query(Entity).filter(Entity.label==label).first()
        if c.entity:
            redirect(c.entity.url(filetype, action="view"), code=302)
        else:
            # Entity doesn't exist, create a new one.
            if entity_type == 1:
                c.entity = Idea(label, sep_dir=sep_dir)
            elif entity_type == 3:
                c.entity = Thinker(label, sep_dir=sep_dir)
            elif entity_type == 4:
                c.entity = Journal(label, sep_dir=sep_dir)
            elif entity_type == 5:
                c.entity = Work(label, sep_dir=sep_dir)
            elif entity_type == 6:
                c.entity = SchoolOfThought(label, sep_dir=sep_dir)
            else:
                raise NotImplementedError

            Session.add(c.entity)
            Session.commit()
            if redirect: 
                sleep(5) # TODO: figure out database slowness so this can be removed
                redirect(c.entity.url(filetype, action="view"), code=303)
            else:
                return "200 OK"