def post( self, name: str, email: str, password: str, is_tracim_manager: str = 'off', is_tracim_admin: str = 'off', send_email: str = 'off', ): is_tracim_manager = h.on_off_to_boolean(is_tracim_manager) is_tracim_admin = h.on_off_to_boolean(is_tracim_admin) send_email = h.on_off_to_boolean(send_email) current_user = tmpl_context.current_user if current_user.profile.id < Group.TIM_ADMIN: # A manager can't give large rights is_tracim_manager = False is_tracim_admin = False api = UserApi(current_user) if api.user_with_email_exists(email): tg.flash( _('A user with email address "{}" already exists.').format( email), CST.STATUS_ERROR) tg.redirect(self.url()) user = api.create_user() user.email = email user.display_name = name if password: user.password = password elif send_email: # Setup a random password to send email at user password = self.generate_password() user.password = password user.webdav_left_digest_response_hash = '%s:/:%s' % (email, password) api.save(user) # Now add the user to related groups group_api = GroupApi(current_user) user.groups.append(group_api.get_one(Group.TIM_USER)) if is_tracim_manager: user.groups.append(group_api.get_one(Group.TIM_MANAGER)) if is_tracim_admin: user.groups.append(group_api.get_one(Group.TIM_ADMIN)) api.save(user) if send_email: email_manager = get_email_manager() email_manager.notify_created_account(user, password=password) api.execute_created_user_actions(user) tg.flash( _('User {} created.').format(user.get_display_name()), CST.STATUS_OK) tg.redirect(self.url())
def post( self, name: str, email: str, password: str, is_tracim_manager: str='off', is_tracim_admin: str='off', send_email: str='off', ): is_tracim_manager = h.on_off_to_boolean(is_tracim_manager) is_tracim_admin = h.on_off_to_boolean(is_tracim_admin) send_email = h.on_off_to_boolean(send_email) current_user = tmpl_context.current_user if current_user.profile.id < Group.TIM_ADMIN: # A manager can't give large rights is_tracim_manager = False is_tracim_admin = False api = UserApi(current_user) if api.user_with_email_exists(email): tg.flash(_('A user with email address "{}" already exists.').format(email), CST.STATUS_ERROR) tg.redirect(self.url()) user = api.create_user() user.email = email user.display_name = name if password: user.password = password elif send_email: # Setup a random password to send email at user password = str(uuid.uuid4()) user.password = password user.webdav_left_digest_response_hash = '%s:/:%s' % (email, password) api.save(user) # Now add the user to related groups group_api = GroupApi(current_user) user.groups.append(group_api.get_one(Group.TIM_USER)) if is_tracim_manager: user.groups.append(group_api.get_one(Group.TIM_MANAGER)) if is_tracim_admin: user.groups.append(group_api.get_one(Group.TIM_ADMIN)) api.save(user) if send_email: email_manager = get_email_manager() email_manager.notify_created_account(user, password=password) tg.flash(_('User {} created.').format(user.get_display_name()), CST.STATUS_OK) tg.redirect(self.url())
def post(self, user_id: str, role_id: str, with_notif: str = 'off'): user_id = int(user_id) role_id = int(role_id) self._add_user_with_role(user_id, role_id, on_off_to_boolean(with_notif), _('User {} added to workspace {} as {}')) tg.redirect(self.parent_controller.url(tg.tmpl_context.workspace_id))
def put(self, id, name, description, calendar_enabled: str = 'off'): user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) workspace = workspace_api_controller.get_one(id) # Display error page to user if chosen label is in conflict if name != workspace.label and \ not self._path_validation.workspace_label_is_free(name): return render_invalid_integrity_chosen_path(name) workspace.label = name workspace.description = description workspace.calendar_enabled = calendar_enabled workspace_api_controller.save(workspace) if calendar_enabled: workspace_api_controller.ensure_calendar_exist(workspace) else: workspace_api_controller.disable_calendar(workspace) tg.flash( _('{} workspace updated.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url(workspace.workspace_id)) return
def create_one(self, user: User, workspace: Workspace, role_level: int, with_notif: bool, flush: bool=True) -> UserRoleInWorkspace: role = self.create_role() role.user_id = user.user_id role.workspace = workspace role.role = role_level if with_notif is not None: from tracim.lib.helpers import on_off_to_boolean role.do_notify = on_off_to_boolean(with_notif) if flush: DBSession.flush() return role
def create_one(self, user: User, workspace: Workspace, role_level: int, with_notif: bool, flush: bool=True) -> UserRoleInWorkspace: role = self.create_role() role.user_id = user.user_id role.workspace = workspace role.role = role_level if with_notif is not None: from tracim.lib.helpers import on_off_to_boolean role.do_notify = on_off_to_boolean(with_notif) if flush: DBSession.flush() return role
def post(self, name, description, calendar_enabled: str='off'): # FIXME - Check user profile user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) workspace = workspace_api_controller.create_workspace(name, description) workspace.calendar_enabled = calendar_enabled DBSession.flush() tg.flash(_('{} workspace created.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url()) return
def put(self, id, name, description, calendar_enabled: str='off'): user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) workspace = workspace_api_controller.get_one(id) workspace.label = name workspace.description = description workspace.calendar_enabled = calendar_enabled workspace_api_controller.save(workspace) tg.flash(_('{} workspace updated.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url(workspace.workspace_id)) return
def put(self, id, name, description, calendar_enabled: str = 'off'): user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) workspace = workspace_api_controller.get_one(id) workspace.label = name workspace.description = description workspace.calendar_enabled = calendar_enabled workspace_api_controller.save(workspace) tg.flash( _('{} workspace updated.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url(workspace.workspace_id)) return
def post(self, name, description, calendar_enabled: str = 'off'): # FIXME - Check user profile user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) workspace = workspace_api_controller.create_workspace( name, description) workspace.calendar_enabled = calendar_enabled DBSession.flush() tg.flash( _('{} workspace created.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url()) return
def post(self, name, email, password, is_tracim_manager='off', is_tracim_admin='off'): is_tracim_manager = h.on_off_to_boolean(is_tracim_manager) is_tracim_admin = h.on_off_to_boolean(is_tracim_admin) current_user = tmpl_context.current_user if current_user.profile.id < Group.TIM_ADMIN: # A manager can't give large rights is_tracim_manager = False is_tracim_admin = False api = UserApi(current_user) if api.user_with_email_exists(email): tg.flash(_('A user with email address "{}" already exists.').format(email), CST.STATUS_ERROR) tg.redirect(self.url()) user = api.create_user() user.email = email user.display_name = name if password: user.password = password api.save(user) # Now add the user to related groups group_api = GroupApi(current_user) user.groups.append(group_api.get_one(Group.TIM_USER)) if is_tracim_manager: user.groups.append(group_api.get_one(Group.TIM_MANAGER)) if is_tracim_admin: user.groups.append(group_api.get_one(Group.TIM_ADMIN)) api.save(user) tg.flash(_('User {} created.').format(user.get_display_name()), CST.STATUS_OK) tg.redirect(self.url())
def post(self, name, description, calendar_enabled: str='off'): # FIXME - Check user profile user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) # Display error page to user if chosen label is in conflict if not self._path_validation.workspace_label_is_free(name): return render_invalid_integrity_chosen_path(name) workspace = workspace_api_controller.create_workspace( name, description, calendar_enabled=calendar_enabled, save_now=True, ) tg.flash(_('{} workspace created.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url()) return
def post(self, name, description, calendar_enabled: str='off'): # FIXME - Check user profile user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) # Display error page to user if chosen label is in conflict if not self._path_validation.workspace_label_is_free(name): return render_invalid_integrity_chosen_path(name) workspace = workspace_api_controller.create_workspace( name, description, calendar_enabled=calendar_enabled, save_now=True, ) tg.flash(_('{} workspace created.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url()) return
def put(self, id, name, description, calendar_enabled: str='off'): user = tmpl_context.current_user workspace_api_controller = WorkspaceApi(user) calendar_enabled = on_off_to_boolean(calendar_enabled) workspace = workspace_api_controller.get_one(id) # Display error page to user if chosen label is in conflict if name != workspace.label and \ not self._path_validation.workspace_label_is_free(name): return render_invalid_integrity_chosen_path(name) workspace.label = name workspace.description = description workspace.calendar_enabled = calendar_enabled workspace_api_controller.save(workspace) if calendar_enabled: workspace_api_controller.ensure_calendar_exist(workspace) tg.flash(_('{} workspace updated.').format(workspace.label), CST.STATUS_OK) tg.redirect(self.url(workspace.workspace_id)) return