diff -r 2fc04786dd36 -r 3fa6c9ef2f51 cubicweb/web/views/cwuser.py --- a/cubicweb/web/views/cwuser.py Fri Oct 06 11:45:52 2017 +0200 +++ b/cubicweb/web/views/cwuser.py Fri Oct 06 14:24:35 2017 +0200 @@ -1,4 +1,4 @@ -# copyright 2003-2011 LOGILAB S.A. (Paris, FRANCE), all rights reserved. +# copyright 2003 LOGILAB S.A. (Paris, FRANCE), all rights reserved. # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr # # This file is part of CubicWeb. @@ -20,7 +20,7 @@ from cubicweb import _ -from hashlib import sha1 # pylint: disable=E0611 +from hashlib import sha1 # pylint: disable=E0611 from six import text_type from six.moves import range @@ -28,7 +28,6 @@ from logilab.mtconverter import xml_escape from cubicweb import tags -from cubicweb.schema import display_name from cubicweb.predicates import one_line_rset, is_instance, match_user_groups from cubicweb.view import EntityView, StartupView from cubicweb.web import action, formwidgets @@ -39,7 +38,8 @@ _affk = uicfg.autoform_field_kwargs _affk.tag_subject_of(('CWUser', 'in_group', 'CWGroup'), - {'widget': formwidgets.InOutWidget}) + {'widget': formwidgets.InOutWidget}) + class UserPreferencesEntityAction(action.Action): __regid__ = 'prefs' @@ -66,7 +66,7 @@ self.w(u''' '''% self._cw.encoding) + xmlns:foaf="http://xmlns.com/foaf/0.1/"> ''' % self._cw.encoding) for i in range(self.cw_rset.rowcount): self.cell_call(i, 0) self.w(u'\n') @@ -121,6 +121,7 @@ 'U last_login_time LL, G eid %(x)s', {'x': entity.eid}) self.wview('cwgroup.users', rset, 'null') + class CWGroupUsersTable(tableview.RsetTableView): __regid__ = 'cwgroup.users' __select__ = is_instance('CWUser') @@ -135,9 +136,7 @@ __select__ = is_instance('CWGroup') def entity_call(self, entity): - self._cw.add_css(('cubicweb.schema.css','cubicweb.acl.css')) - access_types = ('read', 'delete', 'add', 'update') - w = self.w + self._cw.add_css(('cubicweb.schema.css', 'cubicweb.acl.css')) objtype_access = {'CWEType': ('read', 'delete', 'add', 'update'), 'CWRelation': ('add', 'delete')} rql_cwetype = 'DISTINCT Any X WHERE X %s_permission CWG, X is CWEType, ' \ @@ -170,7 +169,7 @@ # user / groups management views ############################################### class ManageUsersAction(actions.ManagersAction): - __regid__ = 'cwuser' # see rewrite rule /cwuser + __regid__ = 'cwuser' # see rewrite rule /cwuser title = _('users and groups') category = 'manage' @@ -179,7 +178,7 @@ __regid__ = 'cw.users-and-groups-management' __select__ = StartupView.__select__ & match_user_groups('managers') title = _('Users and groups management') - tabs = [_('cw.users-management'), _('cw.groups-management'),] + tabs = [_('cw.users-management'), _('cw.groups-management')] default_tab = 'cw.users-management' def call(self, **kwargs): @@ -191,7 +190,7 @@ class CWUserManagementView(StartupView): __regid__ = 'cw.users-management' __select__ = StartupView.__select__ & match_user_groups('managers') - cache_max_age = 0 # disable caching + cache_max_age = 0 # disable caching # XXX one could wish to display for instance only user's firstname/surname # for non managers but filtering out NULL caused crash with an ldapuser # source. The ldapuser source has been dropped and this code can be updated. @@ -217,24 +216,24 @@ column_renderers = { 'user': tableview.EntityTableColRenderer( - renderfunc=lambda w,x: w(tags.a(x.login, href=x.absolute_url())), + renderfunc=lambda w, x: w(tags.a(x.login, href=x.absolute_url())), sortfunc=lambda x: x.login), 'in_state': tableview.EntityTableColRenderer( - renderfunc=lambda w,x: w(x.cw_adapt_to('IWorkflowable').printable_state), + renderfunc=lambda w, x: w(x.cw_adapt_to('IWorkflowable').printable_state), sortfunc=lambda x: x.cw_adapt_to('IWorkflowable').printable_state), 'in_group': tableview.EntityTableColRenderer( - renderfunc=lambda w,x: x.view('reledit', rtype='in_group', role='subject', w=w)), + renderfunc=lambda w, x: x.view('reledit', rtype='in_group', role='subject', w=w)), 'primary_email': tableview.RelatedEntityColRenderer( - getrelated=lambda x:x.primary_email and x.primary_email[0] or None), + getrelated=lambda x: x.primary_email and x.primary_email[0] or None), 'cw_source': tableview.RelatedEntityColRenderer( getrelated=lambda x: x.cw_source[0]), - } + } class CWGroupsManagementView(StartupView): __regid__ = 'cw.groups-management' __select__ = StartupView.__select__ & match_user_groups('managers') - cache_max_age = 0 # disable caching + cache_max_age = 0 # disable caching rql = ('Any G,GN ORDERBY GN WHERE G is CWGroup, G name GN, NOT G name "owners"') def call(self, **kwargs): @@ -253,6 +252,6 @@ 'group': tableview.MainEntityColRenderer(), 'nb_users': tableview.EntityTableColRenderer( header=_('num. users'), - renderfunc=lambda w,x: w(text_type(x.num_users())), + renderfunc=lambda w, x: w(text_type(x.num_users())), sortfunc=lambda x: x.num_users()), - } + }