Esempio n. 1
0
    def before_update_object(self, user, data, view_kwargs):
        if data.get('original_image_url') and data['original_image_url'] != user.original_image_url:
            try:
                uploaded_images = create_save_image_sizes(data['original_image_url'], 'speaker-image', user.id)
            except (urllib.error.HTTPError, urllib.error.URLError):
                raise UnprocessableEntity(
                    {'source': 'attributes/original-image-url'}, 'Invalid Image URL'
                )
            data['original_image_url'] = uploaded_images['original_image_url']
            data['small_image_url'] = uploaded_images['thumbnail_image_url']
            data['thumbnail_image_url'] = uploaded_images['thumbnail_image_url']
            data['icon_image_url'] = uploaded_images['icon_image_url']

        if data.get('email') and data['email'] != user.email:
            try:
                db.session.query(User).filter_by(email=data['email']).one()
            except NoResultFound:
                view_kwargs['email_changed'] = user.email
            else:
                raise ConflictException({'pointer': '/data/attributes/email'}, "Email already exists")

        if has_access('is_super_admin') and data.get('is_admin') != user.is_admin:
            user.is_admin = not user.is_admin

        if has_access('is_admin') and data.get('is_sales_admin') != user.is_sales_admin:
            user.is_sales_admin = not user.is_sales_admin

        if has_access('is_admin') and data.get('is_marketer') != user.is_marketer:
            user.is_marketer = not user.is_marketer
Esempio n. 2
0
    def test_create_save_image_sizes(self):
        with app.test_request_context():
            image_url_test = 'https://cdn.pixabay.com/photo/2014/09/08/17/08/hot-air-balloons-439331_960_720.jpg'
            image_sizes_type = "event"
            width_large = 1300
            width_thumbnail = 500
            width_icon = 75
            image_sizes = create_save_image_sizes(image_url_test,
                                                  image_sizes_type)

            resized_image_url = image_sizes['original_image_url']
            resized_image_url_large = image_sizes['large_image_url']
            resized_image_url_thumbnail = image_sizes['thumbnail_image_url']
            resized_image_url_icon = image_sizes['icon_image_url']

            resized_image_file = app.config.get(
                'BASE_DIR') + resized_image_url.split('/localhost')[1]
            resized_image_file_large = app.config.get(
                'BASE_DIR') + resized_image_url_large.split('/localhost')[1]
            resized_image_file_thumbnail = app.config.get(
                'BASE_DIR') + resized_image_url_thumbnail.split(
                    '/localhost')[1]
            resized_image_file_icon = app.config.get(
                'BASE_DIR') + resized_image_url_icon.split('/localhost')[1]

            resized_width_large, _ = self.getsizes(resized_image_file_large)
            resized_width_thumbnail, _ = self.getsizes(
                resized_image_file_thumbnail)
            resized_width_icon, _ = self.getsizes(resized_image_file_icon)

            self.assertTrue(os.path.exists(resized_image_file))
            self.assertEqual(resized_width_large, width_large)
            self.assertEqual(resized_width_thumbnail, width_thumbnail)
            self.assertEqual(resized_width_icon, width_icon)
Esempio n. 3
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """
        s = get_serializer()
        hash = str(base64.b64encode(str(s.dumps([user.email, str_generator()])).encode()), 'utf-8')
        link = make_frontend_url('/verify'.format(id=user.id), {'token': hash})
        send_email_with_action(user, USER_REGISTER_WITH_PASSWORD, app_name=get_settings()['app_name'],
                               email=user.email)
        send_email_confirmation(user.email, link)

        if data.get('original_image_url'):
            try:
                uploaded_images = create_save_image_sizes(data['original_image_url'], 'speaker-image', user.id)
            except (urllib.error.HTTPError, urllib.error.URLError):
                raise UnprocessableEntity(
                    {'source': 'attributes/original-image-url'}, 'Invalid Image URL'
                )
            uploaded_images['small_image_url'] = uploaded_images['thumbnail_image_url']
            del uploaded_images['large_image_url']
            self.session.query(User).filter_by(id=user.id).update(uploaded_images)
    def test_create_save_image_sizes(self):
        """Method to test create image sizes"""

        with app.test_request_context():
            image_url_test =  image_link
            image_sizes_type = "event-image"
            width_large = 1300
            width_thumbnail = 500
            width_icon = 75
            image_sizes = create_save_image_sizes(image_url_test, image_sizes_type)
            image_sizes = {
                url_name: urlparse(image_sizes[url_name]).path
                for url_name in image_sizes
            }  # Now file names don't contain port (this gives relative urls).

            resized_image_url = image_sizes['original_image_url']
            resized_image_url_large = image_sizes['large_image_url']
            resized_image_url_thumbnail = image_sizes['thumbnail_image_url']
            resized_image_url_icon = image_sizes['icon_image_url']

            resized_image_file = app.config.get('BASE_DIR') + resized_image_url
            resized_image_file_large = app.config.get('BASE_DIR') + resized_image_url_large
            resized_image_file_thumbnail = app.config.get('BASE_DIR') + resized_image_url_thumbnail
            resized_image_file_icon = app.config.get('BASE_DIR') + resized_image_url_icon

            resized_width_large, _ = self.getsizes(resized_image_file_large)
            resized_width_thumbnail, _ = self.getsizes(resized_image_file_thumbnail)
            resized_width_icon, _ = self.getsizes(resized_image_file_icon)

            self.assertTrue(os.path.exists(resized_image_file))
            self.assertEqual(resized_width_large, width_large)
            self.assertEqual(resized_width_thumbnail, width_thumbnail)
            self.assertEqual(resized_width_icon, width_icon)
Esempio n. 5
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """
        s = get_serializer()
        hash = str(
            base64.b64encode(
                str(s.dumps([user.email, str_generator()])).encode()), 'utf-8')
        link = make_frontend_url('/verify'.format(id=user.id), {'token': hash})
        send_email_with_action(user,
                               USER_REGISTER_WITH_PASSWORD,
                               app_name=get_settings()['app_name'],
                               email=user.email)
        send_email_confirmation(user.email, link)

        if data.get('original_image_url'):
            try:
                uploaded_images = create_save_image_sizes(
                    data['original_image_url'], 'speaker-image', user.id)
            except (urllib.error.HTTPError, urllib.error.URLError):
                raise UnprocessableEntity(
                    {'source': 'attributes/original-image-url'},
                    'Invalid Image URL')
            uploaded_images['small_image_url'] = uploaded_images[
                'thumbnail_image_url']
            del uploaded_images['large_image_url']
            self.session.query(User).filter_by(
                id=user.id).update(uploaded_images)
Esempio n. 6
0
    def before_update_object(self, user, data, view_kwargs):
        if data.get('original_image_url') and data['original_image_url'] != user.original_image_url:
            uploaded_images = create_save_image_sizes(data['original_image_url'], 'user', user.id)
            data['original_image_url'] = uploaded_images['original_image_url']
            data['small_image_url'] = uploaded_images['thumbnail_image_url']
            data['thumbnail_image_url'] = uploaded_images['thumbnail_image_url']
            data['icon_image_url'] = uploaded_images['icon_image_url']

        if data.get('email') and data['email'] != user.email:
            view_kwargs['email_changed'] = user.email
 def after_create_object(self, custom_placeholder, data, view_kwargs):
     """
     after create method for custom placeholder to save image sizes
     :param custom_placeholder:
     :param data:
     :param view_kwargs:
     :return:
     """
     if data.get('original_image_url'):
         uploaded_images = create_save_image_sizes(data['original_image_url'], 'custom-placeholders',
                                                   custom_placeholder.id)
         self.session.query(CustomPlaceholder).filter_by(id=custom_placeholder.id).update(uploaded_images)
Esempio n. 8
0
def resize_speaker_images_task(self, speaker_id, photo_url):
    speaker = safe_query(db, Speaker, 'id', speaker_id, 'speaker_id')
    try:
        logging.info('Speaker image resizing tasks started for speaker with id {}'.format(speaker_id))
        uploaded_images = create_save_image_sizes(photo_url, 'speaker-image', speaker_id)
        speaker.small_image_url = uploaded_images['small_image_url']
        speaker.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        speaker.icon_image_url = uploaded_images['icon_image_url']
        save_to_db(speaker)
        logging.info('Resized images saved successfully for speaker with id: {}'.format(speaker_id))
    except (urllib.error.HTTPError, urllib.error.URLError):
        logging.exception('Error encountered while generating resized images for event with id: {}'.format(speaker_id))
Esempio n. 9
0
def resize_event_images_task(self, event_id, original_image_url):
    event = safe_query(db, Event, 'id', event_id, 'event_id')
    try:
        logging.info('Event image resizing tasks started {}'.format(original_image_url))
        uploaded_images = create_save_image_sizes(original_image_url, 'event-image', event.id)
        event.large_image_url = uploaded_images['large_image_url']
        event.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        event.icon_image_url = uploaded_images['icon_image_url']
        save_to_db(event)
        logging.info('Resized images saved successfully for event with id: {}'.format(event_id))
    except (urllib.error.HTTPError, urllib.error.URLError):
        logging.exception('Error encountered while generating resized images for event with id: {}'.format(event_id))
Esempio n. 10
0
def resize_user_images_task(self, user_id, original_image_url):
    user = safe_query(db, User, 'id', user_id, 'user_id')
    try:
        logging.info('User image resizing tasks started {}'.format(original_image_url))
        uploaded_images = create_save_image_sizes(original_image_url, 'speaker-image', user.id)
        user.original_image_url = uploaded_images['original_image_url']
        user.avatar_url = uploaded_images['original_image_url']
        user.small_image_url = uploaded_images['thumbnail_image_url']
        user.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        user.icon_image_url = uploaded_images['icon_image_url']
        save_to_db(user)
        logging.info('Resized images saved successfully for user with id: {}'.format(user_id))
    except (urllib.error.HTTPError, urllib.error.URLError):
        logging.exception('Error encountered while generating resized images for user with id: {}'.format(user_id))
Esempio n. 11
0
 def before_update_object(self, event, data, view_kwargs):
     """
     method to save image urls before updating event object
     :param event:
     :param data:
     :param view_kwargs:
     :return:
     """
     if data.get('original_image_url') and data['original_image_url'] != event.original_image_url:
         uploaded_images = create_save_image_sizes(data['original_image_url'], 'event', event.id)
         data['original_image_url'] = uploaded_images['original_image_url']
         data['large_image_url'] = uploaded_images['large_image_url']
         data['thumbnail_image_url'] = uploaded_images['thumbnail_image_url']
         data['icon_image_url'] = uploaded_images['icon_image_url']
Esempio n. 12
0
 def after_create_object(self, custom_placeholder, data, view_kwargs):
     """
     after create method for custom placeholder to save image sizes
     :param custom_placeholder:
     :param data:
     :param view_kwargs:
     :return:
     """
     if data.get('original_image_url'):
         uploaded_images = create_save_image_sizes(
             data['original_image_url'], 'custom-placeholders',
             custom_placeholder.id)
         self.session.query(CustomPlaceholder).filter_by(
             id=custom_placeholder.id).update(uploaded_images)
 def before_update_object(self, custom_placeholder, data, view_kwargs):
     """
     method to update image sizes before updating the custom placeholder
     :param custom_placeholder:
     :param data:
     :param view_kwargs:
     :return:
     """
     if data.get('original_image_url') and data['original_image_url'] != custom_placeholder.original_image_url:
         uploaded_images = create_save_image_sizes(data['original_image_url'], 'custom-placeholders',
                                                   custom_placeholder.id)
         data['original_image_url'] = uploaded_images['original_image_url']
         data['large_image_url'] = uploaded_images['large_image_url']
         data['thumbnail_image_url'] = uploaded_images['thumbnail_image_url']
         data['icon_image_url'] = uploaded_images['icon_image_url']
Esempio n. 14
0
 def after_create_object(self, event, data, view_kwargs):
     """
     after create method to save roles for users
     :param event:
     :param data:
     :param view_kwargs:
     :return:
     """
     role = Role.query.filter_by(name=ORGANIZER).first()
     user = User.query.filter_by(id=view_kwargs['user_id']).first()
     uer = UsersEventsRoles(user, event, role)
     save_to_db(uer, 'Event Saved')
     if data.get('original_image_url'):
         uploaded_images = create_save_image_sizes(data['original_image_url'], 'event', event.id)
         self.session.query(Event).filter_by(id=event.id).update(uploaded_images)
         self.session.commit()
 def before_update_object(self, event, data, view_kwargs):
     """
     method to save image urls before updating event object
     :param event:
     :param data:
     :param view_kwargs:
     :return:
     """
     if data.get('original_image_url') and data[
             'original_image_url'] != event.original_image_url:
         uploaded_images = create_save_image_sizes(
             data['original_image_url'], 'event', event.id)
         data['original_image_url'] = uploaded_images['original_image_url']
         data['large_image_url'] = uploaded_images['large_image_url']
         data['thumbnail_image_url'] = uploaded_images[
             'thumbnail_image_url']
         data['icon_image_url'] = uploaded_images['icon_image_url']
Esempio n. 16
0
def resize_event_images_task(self, event_id, original_image_url):
    event = Event.query.get(event_id)
    try:
        logging.info(
            f'Event image resizing tasks started {original_image_url}')
        uploaded_images = create_save_image_sizes(original_image_url,
                                                  'event-image', event.id)
        event.large_image_url = uploaded_images['large_image_url']
        event.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        event.icon_image_url = uploaded_images['icon_image_url']
        save_to_db(event)
        logging.info(
            f'Resized images saved successfully for event with id: {event_id}')
    except (requests.exceptions.HTTPError, requests.exceptions.InvalidURL):
        logging.exception(
            'Error encountered while generating resized images for event with id: {}'
            .format(event_id))
 def after_create_object(self, event, data, view_kwargs):
     """
     after create method to save roles for users
     :param event:
     :param data:
     :param view_kwargs:
     :return:
     """
     role = Role.query.filter_by(name=ORGANIZER).first()
     user = User.query.filter_by(id=view_kwargs['user_id']).first()
     uer = UsersEventsRoles(user, event, role)
     save_to_db(uer, 'Event Saved')
     if data.get('original_image_url'):
         uploaded_images = create_save_image_sizes(
             data['original_image_url'], 'event', event.id)
         self.session.query(Event).filter_by(
             id=event.id).update(uploaded_images)
         self.session.commit()
Esempio n. 18
0
 def before_update_object(self, custom_placeholder, data, view_kwargs):
     """
     method to update image sizes before updating the custom placeholder
     :param custom_placeholder:
     :param data:
     :param view_kwargs:
     :return:
     """
     if data.get('original_image_url') and data[
             'original_image_url'] != custom_placeholder.original_image_url:
         uploaded_images = create_save_image_sizes(
             data['original_image_url'], 'custom-placeholders',
             custom_placeholder.id)
         data['original_image_url'] = uploaded_images['original_image_url']
         data['large_image_url'] = uploaded_images['large_image_url']
         data['thumbnail_image_url'] = uploaded_images[
             'thumbnail_image_url']
         data['icon_image_url'] = uploaded_images['icon_image_url']
Esempio n. 19
0
def resize_speaker_images_task(self, speaker_id, photo_url):
    speaker = Speaker.query.get(speaker_id)
    try:
        logging.info(
            'Speaker image resizing tasks started for speaker with id {}'.
            format(speaker_id))
        uploaded_images = create_save_image_sizes(photo_url, 'speaker-image',
                                                  speaker_id)
        speaker.small_image_url = uploaded_images['small_image_url']
        speaker.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        speaker.icon_image_url = uploaded_images['icon_image_url']
        save_to_db(speaker)
        logging.info(
            'Resized images saved successfully for speaker with id: {}'.format(
                speaker_id))
    except (requests.exceptions.HTTPError, requests.exceptions.InvalidURL):
        logging.exception(
            'Error encountered while generating resized images for event with id: {}'
            .format(speaker_id))
Esempio n. 20
0
def resize_group_images_task(self, group_id, banner_url):
    group = Group.query.get(group_id)
    try:
        logging.info(
            'Group image resizing tasks started for group with id {}: {}'.format(
                group_id, banner_url
            )
        )
        uploaded_images = create_save_image_sizes(
            banner_url, 'event-image', group.id
        )

        group.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        save_to_db(group)
        logging.info(f'Resized images saved successfully for group with id: {group_id}')
    except (requests.exceptions.HTTPError, requests.exceptions.InvalidURL, OSError):
        logging.exception(
            'Error encountered while generating resized images for group with id: {}'.format(
                group_id
            )
        )
Esempio n. 21
0
def resize_exhibitor_images_task(self, exhibitor_id, photo_url):
    exhibitor = Exhibitor.query.get(exhibitor_id)
    try:
        logging.info(
            'Exhibitor image resizing tasks started for exhibitor with id {}: {}'.format(
                exhibitor_id, photo_url
            )
        )
        uploaded_images = create_save_image_sizes(
            photo_url, 'event-image', exhibitor_id, folder='exhibitors'
        )
        exhibitor.thumbnail_image_url = uploaded_images['thumbnail_image_url']
        save_to_db(exhibitor)
        logging.info(
            f'Resized images saved successfully for exhibitor with id: {exhibitor_id}'
        )
    except (requests.exceptions.HTTPError, requests.exceptions.InvalidURL, OSError):
        logging.exception(
            'Error encountered while generating resized images for exhibitor with id: {}'.format(
                exhibitor_id
            )
        )
Esempio n. 22
0
    def after_create_object(self, user, data, view_kwargs):
        """
        method to send-
        email notification
        mail link for register verification
        add image urls
        :param user:
        :param data:
        :param view_kwargs:
        :return:
        """
        s = get_serializer()
        hash = base64.b64encode(s.dumps([user.email, str_generator()]))
        link = make_frontend_url('/email/verify'.format(id=user.id), {'token': hash})
        send_email_with_action(user, USER_REGISTER_WITH_PASSWORD, app_name=get_settings()['app_name'],
                               email=user.email)
        send_email_confirmation(user.email, link)

        if data.get('original_image_url'):
            uploaded_images = create_save_image_sizes(data['original_image_url'], 'user', user.id)
            uploaded_images['small_image_url'] = uploaded_images['thumbnail_image_url']
            del uploaded_images['large_image_url']
            self.session.query(User).filter_by(id=user.id).update(uploaded_images)
Esempio n. 23
0
    def before_update_object(self, user, data, view_kwargs):
        if data.get('original_image_url') and data[
                'original_image_url'] != user.original_image_url:
            try:
                uploaded_images = create_save_image_sizes(
                    data['original_image_url'], 'speaker-image', user.id)
            except (urllib.error.HTTPError, urllib.error.URLError):
                raise UnprocessableEntity(
                    {'source': 'attributes/original-image-url'},
                    'Invalid Image URL')
            data['original_image_url'] = uploaded_images['original_image_url']
            data['small_image_url'] = uploaded_images['thumbnail_image_url']
            data['thumbnail_image_url'] = uploaded_images[
                'thumbnail_image_url']
            data['icon_image_url'] = uploaded_images['icon_image_url']

        if data.get('email') and data['email'] != user.email:
            try:
                db.session.query(User).filter_by(email=data['email']).one()
            except NoResultFound:
                view_kwargs['email_changed'] = user.email
            else:
                raise ConflictException({'pointer': '/data/attributes/email'},
                                        "Email already exists")

        if has_access(
                'is_super_admin') and data.get('is_admin') != user.is_admin:
            user.is_admin = not user.is_admin

        if has_access('is_admin'
                      ) and data.get('is_sales_admin') != user.is_sales_admin:
            user.is_sales_admin = not user.is_sales_admin

        if has_access(
                'is_admin') and data.get('is_marketer') != user.is_marketer:
            user.is_marketer = not user.is_marketer