Exemplo n.º 1
0
    def test_unit__get_all__ok__nominal_case(self):
        api = UserApi(current_user=None, session=self.session, config=self.app_config)
        api.create_minimal_user("bibi@bibi")

        users = api.get_all()
        # u1 + Admin user from BaseFixture
        assert 2 == len(users)
Exemplo n.º 2
0
    def test_unit__get_all__ok__nominal_case(self):
        api = UserApi(
            current_user=None,
            session=self.session,
            config=self.app_config,
        )
        u1 = api.create_minimal_user('bibi@bibi')

        users = api.get_all()
        # u1 + Admin user from BaseFixture
        assert 2 == len(users)
Exemplo n.º 3
0
 def users(self, context, request: TracimRequest, hapic_data=None):
     """
     Get all users
     """
     app_config = request.registry.settings["CFG"]  # type: CFG
     uapi = UserApi(
         current_user=request.current_user, session=request.dbsession, config=app_config  # User
     )
     users = uapi.get_all()
     context_users = [uapi.get_user_with_context(user) for user in users]
     return context_users
Exemplo n.º 4
0
def _get_workspace_event_receiver_ids(event: Event, session: TracimSession,
                                      config: CFG) -> Set[int]:
    # Two cases: if workspace is accessible every user should get a message
    # If not, only administrators + members + user subject of the action (for user role events)
    if WorkspaceAccessType(
            event.workspace["access_type"]) in Workspace.ACCESSIBLE_TYPES:
        user_api = UserApi(current_user=None, session=session, config=config)
        receiver_ids = set(user.user_id for user in user_api.get_all())
    else:
        receiver_ids = _get_members_and_administrators_ids(
            event, session, config)
    return receiver_ids
Exemplo n.º 5
0
 def users(self, context, request: TracimRequest, hapic_data=None):
     """
     Get all users
     """
     app_config = request.registry.settings['CFG']
     uapi = UserApi(
         current_user=request.current_user,  # User
         session=request.dbsession,
         config=app_config,
     )
     users = uapi.get_all()
     context_users = [
         uapi.get_user_with_context(user) for user in users
     ]
     return context_users
Exemplo n.º 6
0
class CaldavSyncCommand(AppContextCommand):
    def get_description(self) -> str:
        return "synchronize tracim with radicale"

    def get_parser(self, prog_name: str) -> argparse.ArgumentParser:
        parser = super().get_parser(prog_name)
        return parser

    def take_app_action(self, parsed_args: argparse.Namespace,
                        app_context: AppEnvironment) -> None:
        # TODO - G.M - 05-04-2018 -Refactor this in order
        # to not setup object var outside of __init__ .
        self._session = app_context["request"].dbsession
        self._app_config = app_context["registry"].settings["CFG"]
        self._user_api = UserApi(current_user=None,
                                 session=self._session,
                                 config=self._app_config)
        self._workspace_api = WorkspaceApi(current_user=None,
                                           force_role=True,
                                           session=self._session,
                                           config=self._app_config)
        self._agenda_api = AgendaApi(current_user=None,
                                     session=self._session,
                                     config=self._app_config)

        # INFO - G.M - 2019-03-13 - check users agendas
        users = self._user_api.get_all()
        nb_error_agenda_access = 0
        for user in users:
            try:
                already_exist = self._agenda_api.ensure_user_agenda_exists(
                    user)
                if not already_exist:
                    print("New created agenda for user {}".format(user))
            except CannotCreateAgenda as exc:
                nb_error_agenda_access += 1
                print("Cannot create agenda for user {}".format(user.user_id))
                logger.exception(self, exc)
            except AgendaServerConnectionError as exc:
                nb_error_agenda_access += 1
                print("Cannot access to agenda server: connection error.")
                logger.exception(self, exc)
            except Exception as exc:
                nb_error_agenda_access += 1
                print("Something goes wrong during agenda create/update")
                logger.exception(self, exc)
        nb_user_agendas = len(users)
        nb_verified_user_agenda = len(users) - nb_error_agenda_access
        print("{}/{} users agenda verified".format(nb_verified_user_agenda,
                                                   nb_user_agendas))

        # # INFO - G.M - 2019-03-13 - check workspaces agendas
        workspaces = self._workspace_api.get_all()
        nb_error_agenda_access = 0
        nb_workspaces = 0
        nb_agenda_enabled_workspace = 0
        for workspace in workspaces:
            nb_workspaces += 1
            if workspace.agenda_enabled:
                nb_agenda_enabled_workspace += 1
                try:
                    already_exist = self._agenda_api.ensure_workspace_agenda_exists(
                        workspace)
                    if not already_exist:
                        print("New created agenda for workspace {}".format(
                            workspace.workspace_id))
                except CannotCreateAgenda as exc:
                    print("Cannot create agenda for workspace {}".format(
                        workspace.workspace_id))
                    logger.exception(self, exc)
                except AgendaServerConnectionError as exc:
                    nb_error_agenda_access += 1
                    print("Cannot access to agenda server: connection error.")
                    logger.exception(self, exc)
        nb_verified_workspace_agenda = nb_agenda_enabled_workspace - nb_error_agenda_access
        nb_workspace_without_agenda_enabled = nb_workspaces - nb_agenda_enabled_workspace
        print(
            "{}/{} workspace agenda verified ({} workspace without agenda feature enabled)"
            .format(
                nb_verified_workspace_agenda,
                nb_agenda_enabled_workspace,
                nb_workspace_without_agenda_enabled,
            ))