def test_usermodif(self): add_user("user1") self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'SAVE': 'YES', 'user_actif': '3', "is_staff": '1', "is_superuser": '******', "first_name": 'foo', "last_name": 'SUPER', "email": '*****@*****.**'}, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') self.assertEqual(len(self.json_context), 6) self.assertEqual(self.json_context['user_actif'], '3') self.assertEqual(self.json_context['is_staff'], '1') self.assertEqual(self.json_context['is_superuser'], 'o') self.assertEqual(self.json_context['first_name'], 'foo') self.assertEqual(self.json_context['last_name'], 'SUPER') self.assertEqual(self.json_context['email'], '*****@*****.**') self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'user_actif': '3'}, False) self.assert_json_equal('CHECK', "is_staff", '1') self.assert_json_equal('CHECK', "is_superuser", '1') self.assert_json_equal('EDIT', "first_name", 'foo') self.assert_json_equal('EDIT', "last_name", 'SUPER') self.assert_json_equal('EDIT', "email", '*****@*****.**') self.factory.xfer = AudiLogConfig() self.calljson('/CORE/audiLogConfig', {'type_selected': 'CORE.lucteriosuser'}, False) self.assert_count_equal('lucterioslogentry', 0)
def test_useraddsave(self): group = LucteriosGroup.objects.create(name="my_group") group.permissions.set(Permission.objects.filter(id__in=[1, 3])) group.save() add_user("user1") add_user("user2") self.factory.xfer = UsersEdit() self.calljson( '/CORE/usersEdit', { 'SAVE': 'YES', 'username': '******', "is_staff": '0', "is_superuser": '******', "first_name": 'my', "last_name": 'BIG', "email": '*****@*****.**', 'groups': '1', 'user_permissions': '7;9;11' }, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') self.assertEqual(len(self.json_context), 8) self.assertEqual(self.json_context['username'], 'newuser') self.assertEqual(self.json_context['is_staff'], '0') self.assertEqual(self.json_context['is_superuser'], '1') self.assertEqual(self.json_context['first_name'], 'my') self.assertEqual(self.json_context['last_name'], 'BIG') self.assertEqual(self.json_context['email'], '*****@*****.**') self.assertEqual(self.json_context['groups'], '1') self.assertEqual(self.json_context['user_permissions'], '7;9;11') self.assertEqual(5, len(LucteriosUser.objects.all())) user = LucteriosUser.objects.get(id=5) self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'user_actif': '5'}, False) self.assertEqual(user.username, 'newuser') self.assertEqual(user.date_joined.strftime('%d %m %Y'), date.today().strftime('%d %m %Y')) self.assertEqual(user.last_login.strftime('%d %m %Y'), date.today().strftime('%d %m %Y')) self.assertEqual(user.is_staff, False) self.assertEqual(user.is_superuser, True) self.assertEqual(user.first_name, 'my') self.assertEqual(user.last_name, 'BIG') self.assertEqual(user.email, '*****@*****.**') groups = user.groups.all().order_by('id') self.assertEqual(len(groups), 1) self.assertEqual(groups[0].id, 1) perms = user.user_permissions.all().order_by('id') self.assertEqual(len(perms), 3) self.assertEqual(perms[0].id, 7) self.assertEqual(perms[1].id, 9) self.assertEqual(perms[2].id, 11)
def fillresponse(self): img = XferCompImage('img') img.set_value(get_icon_path('lucterios.contacts/images/account.png')) img.set_location(0, 0, 1, 2) self.add_component(img) lab = XferCompLabelForm("title") lab.set_value_as_title(_('View my account.')) lab.set_location(1, 0, 2) self.add_component(lab) try: self.item = Individual.objects.get(user=self.request.user) self.item = self.item.get_final_child() self.model = Individual self.field_id = 'individual' self.params['individual'] = six.text_type(self.item.id) self.add_action(AccountAddModify.get_action(_("Edit"), "images/edit.png"), close=CLOSE_NO) is_individual = True except ObjectDoesNotExist: self.item = LucteriosUser.objects.get(id=self.request.user.id) self.add_action(UsersEdit.get_action(_("Edit"), "images/edit.png"), close=CLOSE_NO, params={'user_actif': six.text_type(self.request.user.id)}) is_individual = False self.fill_from_model(1, 1, True) if is_individual: legal_entities = LegalEntity.objects.filter(responsability__individual=self.item).exclude(id=1) if len(legal_entities) == 1: self.add_legalentity(legal_entities[0]) elif len(legal_entities) > 1: self.add_legalentities(legal_entities) signal_and_lock.Signal.call_signal("add_account", self.item, self) self.add_action(WrapAction(_("Close"), "images/close.png"))
def test_useradd(self): self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {}, False) self.assert_observer('core.custom', 'CORE', 'usersEdit') self.assertEqual(self.json_meta['title'], 'Ajouter un utilisateur') self.assertEqual(len(self.json_context), 0) self.assertEqual(len(self.json_actions), 2) self.assert_count_equal('', 15) self.assert_action_equal(self.json_actions[0], ('Ok', 'images/ok.png', 'CORE', 'usersEdit', 1, 1, 1, {'SAVE': 'YES'})) self.assert_action_equal(self.json_actions[1], ('Annuler', 'images/cancel.png')) self.assert_json_equal('IMAGE', "img", '/static/lucterios.CORE/images/user.png') self.assert_coordcomp_equal("img", (0, 0, 1, 6)) self.assert_coordcomp_equal("username", (1, 0, 1, 1)) self.assert_attrib_equal("username", 'needed', 'True') self.assert_attrib_equal("username", 'description', "nom d'utilisateur") self.assert_json_equal('TAB', '__tab_1', "Informations") self.assert_comp_equal(('LABELFORM', "is_active"), True, (0, 0, 1, 1, 1)) self.assert_comp_equal(('CHECK', "is_staff"), '0', (0, 1, 1, 1, 1)) self.assert_comp_equal(('CHECK', "is_superuser"), '0', (0, 2, 1, 1, 1)) self.assert_comp_equal(('EDIT', "first_name"), '', (0, 3, 1, 1, 1)) self.assert_attrib_equal('first_name', 'needed', 'False') self.assert_comp_equal(('EDIT', "last_name"), '', (0, 4, 1, 1, 1)) self.assert_comp_equal(('EDIT', "email"), '', (0, 5, 1, 1, 1)) self.assert_comp_equal(('CHECK', "password_change"), '0', (0, 6, 1, 1, 1)) self.assert_comp_equal(('PASSWD', "password1"), '', (0, 7, 1, 1)) self.assert_comp_equal(('PASSWD', "password2"), '', (0, 8, 1, 1)) self.assert_json_equal('TAB', '__tab_2', "Permissions") self.assert_comp_equal(('CHECKLIST', "groups"), [], (0, 0, 3, 1)) self.assert_comp_equal(('CHECKLIST', "user_permissions"), [], (0, 1, 3, 1))
def test_user_withconfig(self): configSMTP('localhost', 1025) self.factory.xfer = UsersEdit() self.call('/CORE/usersEdit', {}, False) self.assert_observer('core.custom', 'CORE', 'usersEdit') self.assert_count_equal('COMPONENTS/*', 30) self.assert_attrib_equal('COMPONENTS/CHECK[@name="password_generate"]', "description", "Générer un nouveau mot de passe?")
def test_auditlog_user(self): LucteriosAuditlogModelRegistry.set_state_packages(['CORE']) self.factory.xfer = AudiLogConfig() self.calljson('/CORE/audiLogConfig', {'type_selected': 'CORE.lucteriosuser'}, False) self.assert_count_equal('lucterioslogentry', 0) self.factory.xfer = UsersList() self.calljson('/CORE/usersList', {}, False) self.assert_observer('core.custom', 'CORE', 'usersList') self.assert_count_equal('user_actif', 2) self.assert_count_equal('user_inactif', 0) self.factory.xfer = UsersEdit() self.calljson( '/CORE/usersEdit', { 'SAVE': 'YES', 'username': '******', 'first_name': 'John', 'last_name': 'Doe', 'user_permissions': '1;3;4' }, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') self.factory.xfer = AudiLogConfig() self.calljson('/CORE/audiLogConfig', {'type_selected': 'CORE.lucteriosuser'}, False) self.assert_count_equal('lucterioslogentry', 1) self.factory.xfer = UsersDisabled() self.calljson('/CORE/usersDisabled', {'user_actif': '3'}, False) self.assert_observer('core.acknowledge', 'CORE', 'usersDisabled') self.factory.xfer = AudiLogConfig() self.calljson('/CORE/audiLogConfig', {'type_selected': 'CORE.lucteriosuser'}, False) self.assert_count_equal('lucterioslogentry', 2) self.factory.xfer = UsersDelete() self.calljson('/CORE/usersDelete', { 'user_actif': '3', "CONFIRME": 'YES' }, False) self.assert_observer('core.acknowledge', 'CORE', 'usersDelete') self.factory.xfer = AudiLogConfig() self.calljson('/CORE/audiLogConfig', {'type_selected': 'CORE.lucteriosuser'}, False) self.assert_count_equal('lucterioslogentry', 3) self.assert_json_equal('', 'lucterioslogentry/@0/action', 2) self.assert_json_equal('', 'lucterioslogentry/@0/object_repr', "abc") self.assert_json_equal('', 'lucterioslogentry/@1/action', 1) self.assert_json_equal('', 'lucterioslogentry/@1/object_repr', "abc") self.assert_json_equal('', 'lucterioslogentry/@2/action', 0) self.assert_json_equal('', 'lucterioslogentry/@2/object_repr', "abc")
def test_userpassword(self): user = add_user("user1") user.set_password('user') user.save() user = LucteriosUser.objects.get(id=3) self.assertTrue(user.check_password('user'), 'init') self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'SAVE': 'YES', 'user_actif': '3', 'password_change': 'o', 'password1': 'abc', 'password2': '132'}, False) self.assert_observer('core.exception', 'CORE', 'usersEdit') self.assert_json_equal('', 'message', 'Les mots de passes sont différents!') self.assert_json_equal('', 'code', '3') user = LucteriosUser.objects.get(id=3) self.assertTrue(user.check_password('user'), 'after different') self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'SAVE': 'YES', 'user_actif': '3', 'password_change': 'n', 'password1': '', 'password2': ''}, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') user = LucteriosUser.objects.get(id=3) self.assertTrue(user.check_password('user'), 'after empty') self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'SAVE': 'YES', 'user_actif': '3', 'password_change': 'o', 'password1': 'abc', 'password2': 'abc'}, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') user = LucteriosUser.objects.get(id=3) self.assertTrue(user.check_password('abc'), 'success after change') self.assertFalse(user.check_password('user'), 'wrong after change') self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'SAVE': 'YES', 'user_actif': '3', 'password_change': 'o', 'password1': '', 'password2': ''}, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') user = LucteriosUser.objects.get(id=3) self.assertTrue(user.check_password(''), 'success after change') self.assertFalse(user.check_password('abc'), 'wrong1 after change') self.assertFalse(user.check_password('user'), 'wrong2 after change')
def test_useredit(self): add_user("user1") self.factory.xfer = UsersEdit() self.calljson('/CORE/usersEdit', {'user_actif': '3'}, False) self.assert_observer('core.custom', 'CORE', 'usersEdit') self.assertEqual(self.json_meta['title'], 'Modifier un utilisateur') self.assertEqual(self.json_context['user_actif'], '3') self.assertEqual(len(self.json_actions), 3) self.assert_action_equal( self.json_actions[0], ('Ok', 'images/ok.png', 'CORE', 'usersEdit', 1, 1, 1, { 'SAVE': 'YES' })) self.assert_action_equal(self.json_actions[1], ('Désactiver', 'images/delete.png', 'CORE', 'usersDisabled', 0, 1, 1)) self.assert_action_equal(self.json_actions[2], ('Annuler', 'images/cancel.png')) self.assert_json_equal('IMAGE', "img", '/static/lucterios.CORE/images/user.png') self.assert_coordcomp_equal("img", (0, 0, 1, 6)) self.assert_coordcomp_equal('username', (1, 0, 1, 1)) self.assert_json_equal('LABELFORM', "username", 'user1') self.assert_coordcomp_equal('date_joined', (0, 1, 1, 1)) self.assert_json_equal('LABELFORM', "date_joined", date.today().isoformat(), True) self.assert_coordcomp_equal('last_login', (0, 2, 1, 1)) self.assert_json_equal('LABELFORM', "last_login", date.today().isoformat(), True) self.assert_json_equal('TAB', '__tab_1', "Informations") self.assert_json_equal('CHECK', "is_staff", '0') self.assert_json_equal('CHECK', "is_superuser", '0') self.assert_json_equal('EDIT', "first_name", 'user1') self.assert_json_equal('EDIT', "last_name", 'USER1') self.assert_json_equal('EDIT', "email", '') self.assert_json_equal('CHECK', "password_change", "0") self.assert_json_equal('PASSWD', "password1", '') self.assert_json_equal('PASSWD', "password2", '') self.assert_json_equal('TAB', '__tab_2', "Permissions") self.assert_comp_equal(('CHECKLIST', "groups"), [], (0, 0, 3, 1)) self.assert_comp_equal(('CHECKLIST', "user_permissions"), [], (0, 1, 3, 1))
def test_user_change_password(self): configSMTP('localhost', 1025) self.assertEqual(0, self.server.count()) self.factory.xfer = UsersEdit() self.call( '/CORE/usersEdit', { 'SAVE': 'YES', 'user_actif': '1', "password_generate": 'o', "email": '*****@*****.**' }, False) self.assert_observer('core.acknowledge', 'CORE', 'usersEdit') self.assertEqual(1, self.server.count()) msg, = self.server.check_first_message('Mot de passe de connexion', 1) self.assertEqual('text/plain', msg.get_content_type()) self.assertEqual('base64', msg.get('Content-Transfer-Encoding', '')) content_msg = decode_b64(msg.get_payload()) self.assertEqual( 'Confirmation de connexion à votre application:\nAlias:admin\nMot de passe:', decode_b64(msg.get_payload())[:72]) password = content_msg[72:].strip() user = LucteriosUser.objects.get(id=1) self.assertTrue(user.check_password(password), content_msg)
def fillresponse(self): img = XferCompImage('img') img.set_value(get_icon_path('lucterios.contacts/images/account.png')) img.set_location(0, 0, 1, 2) self.add_component(img) lab = XferCompLabelForm("title") lab.set_value_as_title(_('View my account.')) lab.set_location(1, 0, 2) self.add_component(lab) try: self.item = Individual.objects.get(user=self.request.user) self.item = self.item.get_final_child() self.model = Individual self.field_id = 'individual' self.params['individual'] = six.text_type(self.item.id) self.add_action(AccountAddModify.get_action( _("Edit"), "images/edit.png"), close=CLOSE_NO) is_individual = True except ObjectDoesNotExist: self.item = LucteriosUser.objects.get(id=self.request.user.id) self.add_action( UsersEdit.get_action(_("Edit"), "images/edit.png"), close=CLOSE_NO, params={'user_actif': six.text_type(self.request.user.id)}) is_individual = False self.fill_from_model(1, 1, True) if is_individual: legal_entities = LegalEntity.objects.filter( responsability__individual=self.item).exclude(id=1) if len(legal_entities) == 1: self.add_legalentity(legal_entities[0]) elif len(legal_entities) > 1: self.add_legalentities(legal_entities) signal_and_lock.Signal.call_signal("add_account", self.item, self) self.add_action(WrapAction(_("Close"), "images/close.png"))
def test_user_withoutconfig(self): configSMTP('', 25) self.factory.xfer = UsersEdit() self.call('/CORE/usersEdit', {}, False) self.assert_observer('core.custom', 'CORE', 'usersEdit') self.assert_count_equal('COMPONENTS/*', 29)