Beispiel #1
0
 def __init__(self, request):
     self.request = request
     self.logged_in = request.authenticated_userid
     try:
         self.privilege = get_privileges(self.logged_in)
     except:
         self.privilege = 1
Beispiel #2
0
    def link_delete(self):
        request = self.request
        url = request.route_url('link_delete')
        referrer = request.url
        # Verifica se o referer é a página de edição, se sim muda ela pra home
        if referrer == url:
            referrer = '/'
        came_from = request.params.get('came_from', referrer)
        # Verifica se o usuário está logado
        if self.logged_in != None:
            link = ''
            if 'link' in request.params:
                link = request.params['link']
                # Inicia o DB
                db = MongoClient(host=DB_HOST, port=DB_PORT)
                links = db[DB_NAME]['links']
                if links.find_one({'link': link}) == None:
                    return HTTPFound(location=came_from)
                elif get_privileges(self.logged_in) >= 3:
                    links.delete_one({'link': link})
                    return HTTPFound(location=came_from)
                else:
                    return HTTPForbidden()

            return dict(
                url=request.application_url + '/link',
                came_from=came_from,
            )
        else:
            return HTTPFound(location=request.route_url('login'))
Beispiel #3
0
    def user_editor(self):
        request = self.request
        # Verifica se o usuário está logado
        if self.logged_in != None:
            # Verifica se ele tem privilégio para adicionar admin
            if get_privileges(self.logged_in) != 4:
                return HTTPForbidden()
            else:
                url = request.route_url('user_editor')
                referrer = request.url
                # Verifica se o referer é a página de edição, se sim muda ela pra home
                if referrer == url:
                    referrer = '/'
                came_from = request.params.get('came_from', referrer)
                message = ''
                username = ''
                password = ''
                level = ''
                if 'form.submitted' in request.params:
                    username = request.params['username']
                    password = request.params['password']
                    level = request.params['level']
                    # Inicia o DB
                    db = MongoClient(host=DB_HOST, port=DB_PORT)
                    users = db[DB_NAME]['users']
                    if groupfinder(username, '') != None:
                        users.update_one({'username': username}, {
                            '$set': {
                                'password': hash_password(password),
                                'level': int(level)
                            }
                        })
                        return HTTPFound(location=came_from)
                    else:
                        users.insert_one({
                            'username': username,
                            'password': hash_password(password),
                            'level': int(level)
                        })
                        return HTTPFound(location=came_from)

                return dict(
                    message=message,
                    url=request.application_url + '/user_editor',
                    came_from=came_from,
                )
        else:
            return HTTPForbidden()
Beispiel #4
0
    def link_editor(self):
        request = self.request
        url = request.route_url('link_editor')
        referrer = request.url
        # Verifica se o referer é a página de edição, se sim muda ela pra home
        if referrer == url:
            referrer = '/'
        came_from = request.params.get('came_from', referrer)
        # Verifica se o usuário está logado
        if self.logged_in != None:
            message = ''
            link = ''
            description = ''
            if 'form.submitted' in request.params:
                link = request.params['link']
                description = request.params['description']
                # Inicia o DB
                db = MongoClient(host=DB_HOST, port=DB_PORT)
                links = db[DB_NAME]['links']
                if links.find_one({'link': link}) == None:
                    links.insert_one({
                        'link': link,
                        'description': description,
                        'likes': 0,
                        'dislikes': 0,
                        'points': 0
                    })
                    return HTTPFound(location=came_from)
                elif get_privileges(self.logged_in) >= 2:
                    links.update_one({'link': link},
                                     {'$set': {
                                         'description': description
                                     }})
                    return HTTPFound(location=came_from)
                else:
                    message = 'Você não tem autorização para alterar esse objeto.'

            return dict(
                message=message,
                url=request.application_url + '/link',
                came_from=came_from,
            )
        else:
            return HTTPFound(location=request.route_url('login'))