コード例 #1
0
def create_profile(sender, instance, created, raw, using, **kwargs):
    if created:
        # Set the username to a simpler form.
        username = f"{instance.first_name}-{instance.pk}" if instance.first_name else f'user-{instance.pk}'
        if User.objects.filter(username=username).exclude(
                id=instance.pk).exists():
            username = util.get_uuid(6)

        User.objects.filter(pk=instance.pk).update(username=username)

        # Make sure staff users are also moderators.
        role = Profile.MANAGER if instance.is_staff else Profile.READER
        Profile.objects.using(using).create(user=instance,
                                            uid=username,
                                            name=instance.first_name,
                                            role=role)
        tasks.create_messages(rec_list=[instance],
                              template="messages/welcome.md")
コード例 #2
0
def create_profile(sender, instance, created, raw, using, **kwargs):

    if created:
        # Set the username to a simpler form.
        username = f"{instance.first_name}-{instance.pk}" if instance.first_name else f'user-{instance.pk}'
        username = slugify(username)
        if User.objects.filter(username=username).exclude(id=instance.pk).exists():
            username = util.get_uuid(6)

        User.objects.filter(pk=instance.pk).update(username=username)

        # Make sure staff users are also moderators.
        role = Profile.MANAGER if (instance.is_staff or instance.is_superuser) else Profile.READER
        Profile.objects.using(using).create(user=instance, uid=username, name=instance.first_name, role=role)
        user_ids = [instance.pk]
        tasks.create_messages(user_ids=user_ids, template="messages/welcome.md")

    # Recompute watched tags
    instance.profile.add_watched()
コード例 #3
0
    def handle(self, *args, **options):

        # Get the filename.
        fname = options['fname']

        if not os.path.isfile(fname):
            logger.error(f'Not a valid filename: {fname}')
            return

        stream = open(fname, 'rU')
        for row in csv.DictReader(stream):
            name = row.get("Name", '')
            email = row.get("Email", '')
            handler = row.get("Handler", '')

            # All fields must be filled in.
            if not (name and email):
                logger.error(f"Invalid row: {row}")
                continue

            # Fix capitalization.
            name = name.strip()
            email = email.strip().lower()
            handler = handler.strip()

            if User.objects.filter(email=email).exists():
                logger.info(
                    f"Skipped creation. User with email={email} already exists."
                )
            else:
                username = handler or util.get_uuid(16)
                user = User.objects.create(email=email,
                                           username=username,
                                           first_name=name)
                user.set_password(settings.SECRET_KEY)
                user.save()
                logger.info(f"Created user name={name} email={email}")
コード例 #4
0
def create_profile(sender, instance, created, raw, using, **kwargs):

    if created:

        # Set the username a simpler username.
        username = f"{instance.pk}"

        # Fix uid clashes.
        if Profile.objects.filter(uid=username):
            username = util.get_uuid(8)
            logger.info(
                f"username clash for pk={instance.pk} new uid={username}")

        # Make sure staff users are also moderators.
        role = (Profile.MANAGER if (instance.is_staff or instance.is_superuser)
                else Profile.READER)

        # Create a user profile associate with the user.
        Profile.objects.create(user=instance,
                               uid=username,
                               name=instance.first_name,
                               role=role)

        try:
            # Minimize failures on signup.
            # Send the welcome message.
            user_ids = [instance.pk]
            tasks.create_messages(user_ids=user_ids,
                                  template="messages/welcome.md")
        except Exception as exc:
            logger.error(f"{exc}")

    # Recompute watched tags
    try:
        instance.profile.add_watched()
    except Exception as exc:
        logger.error(f"recomputing watched tags={exc}")
コード例 #5
0
ファイル: models.py プロジェクト: ashikin0112/biostar-central
 def save(self, *args, **kwargs):
     self.uid = self.uid or util.get_uuid(10)
     self.sent_date = self.sent_date or util.now()
     super(Message, self).save(**kwargs)
コード例 #6
0
def create_uuid(sender, instance, *args, **kwargs):
    # Generate a unique username if it does not exist.
    instance.username = instance.username or util.get_uuid(8)
コード例 #7
0
def create_uuid(sender, instance, *args, **kwargs):
    instance.username = instance.username or util.get_uuid(8)
コード例 #8
0
ファイル: models.py プロジェクト: NanTheBeast/biostar-engine
 def save(self, *args, **kwargs):
     self.html = self.html or mistune.markdown(self.body)
     self.uid = self.uid or util.get_uuid(10)
     self.sent_date = self.sent_date or util.now()
     super(Message, self).save(**kwargs)