diff -r 98b4f7fa2e3a -r 457efde98629 web/test/unittest_views_editforms.py --- a/web/test/unittest_views_editforms.py Thu Sep 18 11:03:39 2014 +0200 +++ b/web/test/unittest_views_editforms.py Thu Sep 11 16:43:20 2014 +0200 @@ -148,6 +148,26 @@ self.vreg['forms'].select('edition', req, entity=rset.get_entity(0, 0)) self.assertFalse(any(f for f in form.fields if f is None)) + def test_attribute_add_permissions(self): + # https://www.cubicweb.org/ticket/4342844 + with self.admin_access.repo_cnx() as cnx: + self.create_user(cnx, 'toto') + cnx.commit() + with self.new_access('toto').web_request() as req: + e = self.vreg['etypes'].etype_class('Personne')(req) + cform = self.vreg['forms'].select('edition', req, entity=e) + self.assertIn('sexe', + [rschema.type + for rschema, _ in cform.editable_attributes()]) + with self.new_access('toto').repo_cnx() as cnx: + person_eid = cnx.create_entity('Personne', nom=u'Robert').eid + cnx.commit() + person = req.entity_from_eid(person_eid) + mform = self.vreg['forms'].select('edition', req, entity=person) + self.assertNotIn('sexe', + [rschema.type + for rschema, _ in mform.editable_attributes()]) + class FormViewsTC(CubicWebTC):