##// END OF EJS Templates
fleshing out the Upgrade doc, and modified the references to Cheeseshop in the Install doc
fleshing out the Upgrade doc, and modified the references to Cheeseshop in the Install doc

File last commit:

r2776:63e58ef8 merge default
r2806:008d9c6f beta
Show More
permissions.py
178 lines | 6.8 KiB | text/x-python | PythonLexer
Cleaned up scm model codes,Admin/admin permissions controller codes
r760 # -*- coding: utf-8 -*-
"""
some docs updates on controller
r853 rhodecode.controllers.admin.permissions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
source code cleanup: remove trailing white space, normalize file endings
r1203
Cleaned up scm model codes,Admin/admin permissions controller codes
r760 permissions controller for Rhodecode
source code cleanup: remove trailing white space, normalize file endings
r1203
Cleaned up scm model codes,Admin/admin permissions controller codes
r760 :created_on: Apr 27, 2010
:author: marcink
2012 copyrights
r1824 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com>
Cleaned up scm model codes,Admin/admin permissions controller codes
r760 :license: GPLv3, see COPYING for more details.
"""
fixed license issue #149
r1206 # 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, either version 3 of the License, or
# (at your option) any later version.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
renamed project to rhodecode
r547 # 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.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
renamed project to rhodecode
r547 # You should have received a copy of the GNU General Public License
fixed license issue #149
r1206 # along with this program. If not, see <http://www.gnu.org/licenses/>.
renamed project to rhodecode
r547
Deprecated UserModel removals...
r1501 import logging
import traceback
import formencode
renamed project to rhodecode
r547 from formencode import htmlfill
Deprecated UserModel removals...
r1501
renamed project to rhodecode
r547 from pylons import request, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect
from pylons.i18n.translation import _
Deprecated UserModel removals...
r1501
renamed project to rhodecode
r547 from rhodecode.lib import helpers as h
from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator
from rhodecode.lib.base import BaseController, render
Deprecated UserModel removals...
r1501 from rhodecode.model.forms import DefaultPermissionsForm
#50 on point cache invalidation changes....
r692 from rhodecode.model.permission import PermissionModel
Deprecated UserModel removals...
r1501 from rhodecode.model.db import User
another major refactoring with session management
r1734 from rhodecode.model.meta import Session
renamed project to rhodecode
r547
log = logging.getLogger(__name__)
PEP8ify - controllers
r1245
renamed project to rhodecode
r547 class PermissionsController(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('permission', 'permissions')
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 @LoginRequired()
@HasPermissionAllDecorator('hg.admin')
def __before__(self):
c.admin_user = session.get('admin_user')
c.admin_username = session.get('admin_username')
super(PermissionsController, self).__before__()
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 self.perms_choices = [('repository.none', _('None'),),
('repository.read', _('Read'),),
('repository.write', _('Write'),),
('repository.admin', _('Admin'),)]
self.register_choices = [
#49 Enabled anonymous access for web interface controllable from permissions pannel
r673 ('hg.register.none',
_('disabled')),
renamed project to rhodecode
r547 ('hg.register.manual_activate',
#49 Enabled anonymous access for web interface controllable from permissions pannel
r673 _('allowed with manual account activation')),
renamed project to rhodecode
r547 ('hg.register.auto_activate',
#49 Enabled anonymous access for web interface controllable from permissions pannel
r673 _('allowed with automatic account activation')), ]
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 self.create_choices = [('hg.create.none', _('Disabled')),
Code refactoring,models renames...
r629 ('hg.create.repository', _('Enabled'))]
renamed project to rhodecode
r547
RhodeCode now has a option to explicitly set forking permissions. ref #508...
r2709 self.fork_choices = [('hg.fork.none', _('Disabled')),
('hg.fork.repository', _('Enabled'))]
# set the global template variables
c.perms_choices = self.perms_choices
c.register_choices = self.register_choices
c.create_choices = self.create_choices
c.fork_choices = self.fork_choices
renamed project to rhodecode
r547 def index(self, format='html'):
"""GET /permissions: All items in the collection"""
# url('permissions')
def create(self):
"""POST /permissions: Create a new item"""
# url('permissions')
def new(self, format='html'):
"""GET /permissions/new: Form to create a new item"""
# url('new_permission')
def update(self, id):
"""PUT /permissions/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('permission', id=ID),
# method='put')
# url('permission', id=ID)
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 permission_model = PermissionModel()
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 _form = DefaultPermissionsForm([x[0] for x in self.perms_choices],
[x[0] for x in self.register_choices],
RhodeCode now has a option to explicitly set forking permissions. ref #508...
r2709 [x[0] for x in self.create_choices],
[x[0] for x in self.fork_choices])()
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 try:
form_result = _form.to_python(dict(request.POST))
PEP8ify - controllers
r1245 form_result.update({'perm_user_name': id})
renamed project to rhodecode
r547 permission_model.update(form_result)
sqlalchemy sessions cleanup in admin...
r2662 Session().commit()
implements #60, ldap configuration and authentication....
r705 h.flash(_('Default permissions updated successfully'),
renamed project to rhodecode
r547 category='success')
Code refactoring,models renames...
r629
refactor codes and setup for python 2.5...
r564 except formencode.Invalid, errors:
implements #60, ldap configuration and authentication....
r705 defaults = errors.value
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 return htmlfill.render(
render('admin/permissions/permissions.html'),
implements #60, ldap configuration and authentication....
r705 defaults=defaults,
renamed project to rhodecode
r547 errors=errors.error_dict or {},
prefix_error=False,
Code refactoring,models renames...
r629 encoding="UTF-8")
renamed project to rhodecode
r547 except Exception:
log.error(traceback.format_exc())
fixed spelling mistakes, and some minor docs bugs
r860 h.flash(_('error occurred during update of permissions'),
renamed project to rhodecode
r547 category='error')
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 return redirect(url('edit_permission', id=id))
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 def delete(self, id):
"""DELETE /permissions/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('permission', id=ID),
# method='delete')
# url('permission', id=ID)
def show(self, id, format='html'):
"""GET /permissions/id: Show a specific item"""
# url('permission', id=ID)
def edit(self, id, format='html'):
"""GET /permissions/id/edit: Form to edit an existing item"""
#url('edit_permission', id=ID)
Code refactoring,models renames...
r629
RhodeCode now has a option to explicitly set forking permissions. ref #508...
r2709 #this form can only edit default user permissions
renamed project to rhodecode
r547 if id == 'default':
Refactoring of model get functions
r1530 default_user = User.get_by_username('default')
PEP8ify - controllers
r1245 defaults = {'_method': 'put',
'anonymous': default_user.active}
fixes #77 moved out ldap config to it's own section
r769
#49 Enabled anonymous access for web interface controllable from permissions pannel
r673 for p in default_user.user_perms:
renamed project to rhodecode
r547 if p.permission.permission_name.startswith('repository.'):
Code refactoring,models renames...
r629 defaults['default_perm'] = p.permission.permission_name
renamed project to rhodecode
r547 if p.permission.permission_name.startswith('hg.register.'):
defaults['default_register'] = p.permission.permission_name
Code refactoring,models renames...
r629
renamed project to rhodecode
r547 if p.permission.permission_name.startswith('hg.create.'):
defaults['default_create'] = p.permission.permission_name
Code refactoring,models renames...
r629
RhodeCode now has a option to explicitly set forking permissions. ref #508...
r2709 if p.permission.permission_name.startswith('hg.fork.'):
defaults['default_fork'] = p.permission.permission_name
renamed project to rhodecode
r547 return htmlfill.render(
RhodeCode now has a option to explicitly set forking permissions. ref #508...
r2709 render('admin/permissions/permissions.html'),
defaults=defaults,
encoding="UTF-8",
force_defaults=True,
)
renamed project to rhodecode
r547 else:
return redirect(url('admin_home'))