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
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'))
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()
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'))