Пример #1
0
    def create_account(self):
        profile = None
        errors = []
        if not self.username:
            self.username = create_login_credentials(self)
            self.save()
            pprint(self.username)
        else:
            try:
                profile = LDAPBackend().populate_user(self.username)
                self.profile = profile
                self.save()
            except Exception as e:
                pprint(traceback.format_exc())
                return (
                    False,
                    "Account creation failed. Check /var/log/apache2/error.log for more details"
                )

        try:
            if not self.profile:
                pprint("Creating account for " + self.username)
                dn = create_ad_account(self, self.username)
                add_to_ad_group(group_dn=settings.LIPAD_LDAP_GROUP_DN,
                                user_dn=dn)
                profile = LDAPBackend().populate_user(self.username)

                if profile:
                    self.profile = profile
                    self.save()

                    profile.middle_name = self.middle_name
                    profile.organization = self.organization
                    profile.voice = self.contact_number
                    profile.email = self.email
                    profile.save()
                else:
                    pprint("Accout was not created")
                    raise Exception("Account not created")
            else:
                profile.organization_type = self.organization_type
                profile.org_type = self.org_type
                profile.save()
        except Exception as e:
            pprint(traceback.format_exc())
            exc_name = type(e).__name__
            pprint(exc_name)
            if exc_name == "ALREADY_EXISTS":
                return (False, "This user already has an account.")
            return (
                False,
                "Account creation failed. Check /var/log/apache2/error.log for more details"
            )

        self.join_requester_grp()

        try:
            if not self.ftp_folder:
                self.create_directory()
        except Exception as e:
            pprint(traceback.format_exc())
            return (
                False,
                "Folder creation failed, Check /var/log/apache2/error.log for more details"
            )

        return (True, "Account creation successful")