def test_users_for_perms(self, db_session): user = User(user_name="aaa", email="aaa", status=0) UserService.set_password(user, "password") aaa_perm = UserPermission(perm_name="aaa") bbb_perm = UserPermission(perm_name="bbb") bbb2_perm = UserPermission(perm_name="bbb") user.user_permissions.append(aaa_perm) user.user_permissions.append(bbb_perm) user2 = User(user_name="bbb", email="bbb", status=0) UserService.set_password(user2, "password") user2.user_permissions.append(bbb2_perm) user3 = User(user_name="ccc", email="ccc", status=0) UserService.set_password(user3, "password") group = add_group(db_session) group.users.append(user3) db_session.add(user) db_session.add(user2) db_session.flush() users = UserService.users_for_perms(["aaa"], db_session=db_session) assert len(users.all()) == 1 assert users[0].user_name == "aaa" users = UserService.users_for_perms(["bbb"], db_session=db_session).all() assert len(users) == 2 assert ["aaa", "bbb"] == sorted([u.user_name for u in users]) users = UserService.users_for_perms(["aaa", "bbb", "manage_apps"], db_session=db_session) assert ["aaa", "bbb", "ccc"] == sorted([u.user_name for u in users])
def test_users_for_perms(self, db_session): user = User(user_name="aaa", email="aaa", status=0) UserService.set_password(user, "password") aaa_perm = UserPermission(perm_name="aaa") bbb_perm = UserPermission(perm_name="bbb") bbb2_perm = UserPermission(perm_name="bbb") user.user_permissions.append(aaa_perm) user.user_permissions.append(bbb_perm) user2 = User(user_name="bbb", email="bbb", status=0) UserService.set_password(user2, "password") user2.user_permissions.append(bbb2_perm) user3 = User(user_name="ccc", email="ccc", status=0) UserService.set_password(user3, "password") group = add_group(db_session) group.users.append(user3) db_session.add(user) db_session.add(user2) db_session.flush() users = UserService.users_for_perms(["aaa"], db_session=db_session) assert len(users.all()) == 1 assert users[0].user_name == "aaa" users = UserService.users_for_perms(["bbb"], db_session=db_session).all() assert len(users) == 2 assert ["aaa", "bbb"] == sorted([u.user_name for u in users]) users = UserService.users_for_perms( ["aaa", "bbb", "manage_apps"], db_session=db_session ) assert ["aaa", "bbb", "ccc"] == sorted([u.user_name for u in users])
def users_for_perms(cls, perm_names, db_session=None): """ .. deprecated:: 0.8 :param perm_names: :param db_session: :return: """ db_session = get_db_session(db_session) return UserService.users_for_perms(perm_names=perm_names, db_session=db_session)
def users_for_perms(cls, perm_names, db_session=None): """ .. deprecated:: 0.8 :param perm_names: :param db_session: :return: """ db_session = get_db_session(db_session) return UserService.users_for_perms(perm_names=perm_names, db_session=db_session)
def users_DELETE(request): """ Removes a user permanently from db - makes a check to see if after the operation there will be at least one admin left """ msg = _("There needs to be at least one administrator in the system") user = UserService.by_id(request.matchdict.get("user_id")) if user: users = UserService.users_for_perms(["root_administration"]).all() if len(users) < 2 and user.id == users[0].id: request.session.flash(msg, "warning") else: DBSession.delete(user) request.session.flash(_("User removed")) return True request.response.status = 422 return False