##// END OF EJS Templates
error message css
error message css

File last commit:

r252:3782a6d6 default
r261:576e85ca default
Show More
users.py
139 lines | 5.1 KiB | text/x-python | PythonLexer
licensing updates, code cleanups
r252 #!/usr/bin/env python
# encoding: utf-8
# users controller for pylons
# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# of the License or (at your opinion) any later version of the license.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
"""
Created on April 4, 2010
users controller for pylons
@author: marcink
"""
import logging
Fixed access to repos and users.
r235 from formencode import htmlfill
Reimplemented way of caching repos list, hg model now get's repos objects right from cached dict, this way we skipp creating instances of MercurialRepository and gain performance. Some import cleanup
r245 from pylons import request, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect
Rewrite of user managment, improved forms, added some user info
r238 from pylons.i18n.translation import _
Reimplemented way of caching repos list, hg model now get's repos objects right from cached dict, this way we skipp creating instances of MercurialRepository and gain performance. Some import cleanup
r245 from pylons_app.lib import helpers as h
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
r239 from pylons_app.lib.auth import LoginRequired, CheckPermissionAll
Fixed access to repos and users.
r235 from pylons_app.lib.base import BaseController, render
from pylons_app.model.db import User, UserLog
from pylons_app.model.forms import UserForm
from pylons_app.model.user_model import UserModel
import formencode
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')
Fixed access to repos and users.
r235 @LoginRequired()
Marcin Kuzminski
Added rest controllers for repos and users,...
r47 def __before__(self):
c.admin_user = session.get('admin_user')
c.admin_username = session.get('admin_username')
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191 super(UsersController, self).__before__()
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
r239
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
changed naming convention for db modules.
r234 c.users_list = self.sa.query(User).all()
Html changes and cleanups, made folders for html templates, implemented tags and branches pages
r127 return render('admin/users/users.html')
Marcin Kuzminski
Added rest controllers for repos and users,...
r47
def create(self):
"""POST /users: Create a new item"""
# url('users')
Fixed access to repos and users.
r235
user_model = UserModel()
Rewrite of user managment, improved forms, added some user info
r238 login_form = UserForm()()
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 try:
Fixed access to repos and users.
r235 form_result = login_form.to_python(dict(request.POST))
user_model.create(form_result)
Rewrite of user managment, improved forms, added some user info
r238 h.flash(_('created user %s') % form_result['username'], category='success')
Fixed access to repos and users.
r235 return redirect(url('users'))
except formencode.Invalid as errors:
c.form_errors = errors.error_dict
return htmlfill.render(
render('admin/users/user_add.html'),
defaults=errors.value,
encoding="UTF-8")
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50
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')
Html changes and cleanups, made folders for html templates, implemented tags and branches pages
r127 return render('admin/users/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)
Fixed access to repos and users.
r235 user_model = UserModel()
Rewrite of user managment, improved forms, added some user info
r238 login_form = UserForm(edit=True)()
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50 try:
Fixed access to repos and users.
r235 form_result = login_form.to_python(dict(request.POST))
user_model.update(id, form_result)
Rewrite of user managment, improved forms, added some user info
r238 h.flash(_('User updated succesfully'), category='success')
Fixed access to repos and users.
r235 return redirect(url('users'))
except formencode.Invalid as errors:
c.user = user_model.get_user(id)
c.form_errors = errors.error_dict
return htmlfill.render(
render('admin/users/user_edit.html'),
defaults=errors.value,
encoding="UTF-8")
Marcin Kuzminski
user managment implementation continued update/delete/create works...
r50
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:
changed naming convention for db modules.
r234 self.sa.delete(self.sa.query(User).get(id))
Marcin Kuzminski
Added sqlalchemy support...
r49 self.sa.commit()
Rewrite of user managment, improved forms, added some user info
r238 h.flash(_('sucessfully deleted user'), category='success')
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)
changed naming convention for db modules.
r234 c.user = self.sa.query(User).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(
Html changes and cleanups, made folders for html templates, implemented tags and branches pages
r127 render('admin/users/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
)