rename app name to ctp_blogr
This commit is contained in:
132
ctp_blogr/views/default.py
Normal file
132
ctp_blogr/views/default.py
Normal file
@@ -0,0 +1,132 @@
|
||||
from pyramid.view import (
|
||||
view_config,
|
||||
forbidden_view_config,
|
||||
)
|
||||
from pyramid.httpexceptions import HTTPFound
|
||||
from pyramid.security import remember, forget
|
||||
from ..services.user import UserService
|
||||
from ..services.blog_record import BlogRecordService
|
||||
from ..forms import UserCreateForm
|
||||
from ..models.user import User
|
||||
|
||||
|
||||
@view_config(route_name='home', renderer='../templates/home.jinja2')
|
||||
def home(request):
|
||||
# get the last created posts
|
||||
last_ten = BlogRecordService.get_last_created(request)
|
||||
# get Chappatte cartoon
|
||||
entry = BlogRecordService.by_id(request, 95)
|
||||
|
||||
return {
|
||||
'page_title': "This is the Way",
|
||||
'last_ten': last_ten,
|
||||
'cartoon_title': entry.title,
|
||||
'cartoon_url': entry.body,
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='apropos',
|
||||
renderer='../templates/apropos.jinja2')
|
||||
def apropos(request):
|
||||
|
||||
return {
|
||||
'page_title': "A propos",
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='login', renderer='../templates/login.jinja2')
|
||||
@forbidden_view_config(renderer='../templates/login.jinja2')
|
||||
def login(request):
|
||||
login_url = request.route_url('login')
|
||||
|
||||
referrer = request.url
|
||||
if referrer == login_url:
|
||||
referrer = '/' # never use the login form itself as came_from
|
||||
|
||||
came_from = request.params.get('came_from', referrer)
|
||||
username = ''
|
||||
userpwd = ''
|
||||
if 'form.submitted' in request.params:
|
||||
username = request.POST.get('username')
|
||||
userpwd = request.POST.get('password')
|
||||
user = UserService.by_name(request, username)
|
||||
if user and user.verify_password(userpwd):
|
||||
headers = remember(request, username)
|
||||
request.session.flash("Bienvenue %s !" % username, 'success')
|
||||
return HTTPFound(location=came_from, headers=headers)
|
||||
else:
|
||||
headers = forget(request)
|
||||
request.session.flash("Login et mot de passe invalides. La connexion a échoué.", "danger")
|
||||
|
||||
return {
|
||||
'page_title': "",
|
||||
'came_from': came_from,
|
||||
'login_url': login_url,
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='logout', renderer='string')
|
||||
def logout(request):
|
||||
username = request.authenticated_userid
|
||||
headers = forget(request)
|
||||
request.session.flash('Au revoir ' + username + ' !', 'success')
|
||||
return HTTPFound(location=request.route_url('home'), headers=headers)
|
||||
|
||||
|
||||
@view_config(route_name='users', renderer='../templates/users.jinja2', permission='manage')
|
||||
def users(request):
|
||||
# get all users
|
||||
users = UserService.all(request)
|
||||
return {
|
||||
'page_title': "Liste des utilisateurs",
|
||||
'users': users
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='user_add', renderer='../templates/user_add.jinja2', permission='manage')
|
||||
def user_add(request):
|
||||
name = request.matchdict['name']
|
||||
|
||||
# nouveau
|
||||
form = UserCreateForm(request.POST)
|
||||
|
||||
if 'form.submitted' in request.params and form.validate():
|
||||
# créer nouveau
|
||||
new_user = User(name=form.username.data)
|
||||
new_user.set_password(form.password.data.encode('utf8'))
|
||||
request.dbsession.add(new_user)
|
||||
return HTTPFound(location=request.route_url('users'))
|
||||
|
||||
return {
|
||||
'page_title': 'Nouvel utilsateur',
|
||||
'form': form,
|
||||
'name': name,
|
||||
}
|
||||
|
||||
|
||||
@view_config(route_name='user_pwd', renderer='../templates/user_pwd.jinja2', permission='manage')
|
||||
def user_pwd(request):
|
||||
# reset password or delete user
|
||||
name = request.matchdict['name']
|
||||
|
||||
# lire la fiche du membre
|
||||
entry = UserService.by_name(request, name)
|
||||
if not entry:
|
||||
request.session.flash(u"Utilisateur non trouvé : %s" % name, 'warning')
|
||||
return HTTPFound(location=request.route_url('users'))
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
mdp = request.params["new_password"]
|
||||
entry.set_password(mdp.encode('utf8'))
|
||||
return HTTPFound(location=request.route_url('users'))
|
||||
|
||||
if 'form.deleted' in request.params:
|
||||
UserService.delete(request, entry.id)
|
||||
request.session.flash("La fiche a été supprimée avec succès.", 'success')
|
||||
return HTTPFound(location=request.route_url('users'))
|
||||
|
||||
|
||||
return {
|
||||
'page_title': "Utilisateur : %s" %(entry.name),
|
||||
'entry': entry,
|
||||
}
|
||||
Reference in New Issue
Block a user