##// END OF EJS Templates
Updated basic files browser with, pygments
Updated basic files browser with, pygments

File last commit:

r70:9a2affee default
r99:5b572956 default
Show More
users.py
114 lines | 3.7 KiB | text/x-python | PythonLexer
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 import logging
from pylons import request, response, session, tmpl_context as c, url, app_globals as g
from pylons.controllers.util import abort, redirect
from pylons_app.lib.base import BaseController, render
Marcin Kuzminski
Added sqlalchemy support...
r49 from formencode import htmlfill
from pylons_app.model import meta
from pylons_app.model.db import Users, UserLogs
implemented autentication
r52 from pylons_app.lib.auth import authenticate
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 import crypt
implemented autentication
r52
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 log = logging.getLogger(__name__)
class UsersController(BaseController):
"""REST Controller styled on the Atom Publishing Protocol"""
# To properly map this controller, ensure your config/routing.py
# file has a resource setup:
# map.resource('user', 'users')
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50
implemented autentication
r52 @authenticate
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def __before__(self):
c.staticurl = g.statics
c.admin_user = session.get('admin_user')
c.admin_username = session.get('admin_username')
Marcin Kuzminski
Added sqlalchemy support...
r49 self.sa = meta.Session
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def index(self, format='html'):
"""GET /users: All items in the collection"""
# url('users')
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48
Marcin Kuzminski
Added sqlalchemy support...
r49 c.users_list = self.sa.query(Users).all()
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48 return render('/users.html')
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def create(self):
"""POST /users: Create a new item"""
# url('users')
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 params = dict(request.params)
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 try:
new_user = Users()
new_user.active = params.get('active', False)
new_user.username = params.get('username')
new_user.password = crypt.crypt(params.get('password'), '6a')
new_user.admin = False
self.sa.add(new_user)
self.sa.commit()
except:
self.sa.rollback()
raise
return redirect(url('users'))
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def new(self, format='html'):
"""GET /users/new: Form to create a new item"""
# url('new_user')
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 return render('/user_add.html')
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def update(self, id):
"""PUT /users/id: Update an existing item"""
# Forms posted to this method should contain a hidden field:
# <input type="hidden" name="_method" value="PUT" />
# Or using helpers:
# h.form(url('user', id=ID),
# method='put')
# url('user', id=ID)
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 params = dict(request.params)
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 try:
new_user = self.sa.query(Users).get(id)
Marcin Kuzminski
Small fix for data display
r65 new_user.active = params.get('active', False)
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 new_user.username = params.get('username')
if params.get('new_password'):
new_user.password = crypt.crypt(params.get('new_password'), '6a')
self.sa.add(new_user)
self.sa.commit()
except:
self.sa.rollback()
raise
return redirect(url('users'))
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def delete(self, id):
"""DELETE /users/id: Delete an existing item"""
# Forms posted to this method should contain a hidden field:
# <input type="hidden" name="_method" value="DELETE" />
# Or using helpers:
# h.form(url('user', id=ID),
# method='delete')
# url('user', id=ID)
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48 try:
Marcin Kuzminski
Added sqlalchemy support...
r49 self.sa.delete(self.sa.query(Users).get(id))
self.sa.commit()
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48 except:
Marcin Kuzminski
Added sqlalchemy support...
r49 self.sa.rollback()
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48 raise
return redirect(url('users'))
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def show(self, id, format='html'):
"""GET /users/id: Show a specific item"""
# url('user', id=ID)
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50
Marcin Kuzminski
Css fixes, implemented removal of users, and display draft
r48
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def edit(self, id, format='html'):
"""GET /users/id/edit: Form to edit an existing item"""
# url('edit_user', id=ID)
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 c.user = self.sa.query(Users).get(id)
Marcin Kuzminski
Updated defaults bug of htmlfill + changed routing
r70 defaults = c.user.__dict__
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 return htmlfill.render(
render('/user_edit.html'),
Marcin Kuzminski
Updated defaults bug of htmlfill + changed routing
r70 defaults=defaults,
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 encoding="UTF-8",
force_defaults=False
)