def add_student_to_db(self, request, student): ''' Adds a new user in the Database, along with the collected credentials from dionysos.teilar.gr ''' user = User( username = student.dionysos_username, first_name = unicode(student.dionysos_first_name), last_name = unicode(student.dionysos_last_name), email = unicode(student.dionysos_username) + u'@emptymail.com' ) user.is_staff = False user.is_superuser = False try: user.save() except Exception as error: logger_syslog.error(error, extra = log_extra_data(request)) logger_mail.exception(error) raise CronosError(u'Σφάλμα αποθήκευσης βασικών στοιχείων χρήστη') ''' Additional information are added in the userprofile table ''' try: user_profile = UserProfile( user = user, dionysos_username = student.dionysos_username, dionysos_password = encrypt_password(student.dionysos_password), registration_number = unicode(student.dionysos_registration_number), semester = unicode(student.dionysos_semester), school = student.dionysos_school, introduction_year = unicode(student.dionysos_introduction_year), declaration = student.dionysos_declaration, grades = student.dionysos_grades, ) user_profile.save() except Exception as error: logger_syslog.error(error, extra = log_extra_data(request)) logger_mail.exception(error) raise CronosError(u'Σφάλμα αποθήκευσης πρόσθετων στοιχείων χρήστη') ''' Everything went fine Log the new user and notify admins about the new registration ''' title = u'New user No.%s: %s' % (user.id, user.username) message = u'Name: %s %s\nDepartment: %s\nSemester: %s' % ( user.first_name, user.last_name, user_profile.school, user_profile.semester ) logger_syslog.info(title, extra = log_extra_data(request)) try: send_mail(settings.EMAIL_SUBJECT_PREFIX + title, message, settings.SERVER_EMAIL, get_admins_mails()) except Exception as error: logger_syslog.error(error, extra = log_extra_data(request)) logger_mail.exception(error) ''' Return the new user object ''' return user
def add_student_to_db(self, credentials, request): ''' Adds a new user in the Database, along with the collected credentials from dionysos.teilar.gr ''' user = User( username = credentials['username'], first_name = credentials['first_name'], last_name = credentials['last_name'], email = credentials['username'] + '@emptymail.com' ) user.is_staff = False user.is_superuser = False try: user.save() except Exception as error: logger_syslog.error(error, extra = log_extra_data(credentials['username'], request)) logger_mail.exception(error) raise CronosError(u'Σφάλμα αποθήκευσης βασικών στοιχείων χρήστη') ''' Additional information are added in the userprofile table ''' try: user_profile = UserProfile( user = user, dionysos_username = credentials['username'], dionysos_password = encrypt_password(credentials['password']), registration_number = credentials['registration_number'], semester = credentials['semester'], school = Departments.objects.get(name = credentials['school']), introduction_year = credentials['introduction_year'], declaration = credentials['declaration'], #grades = credentials['grades'], ) user_profile.save() except Exception as error: logger_syslog.error(error, extra = log_extra_data(credentials['username'], request)) logger_mail.exception(error) raise CronosError(u'Σφάλμα αποθήκευσης πρόσθετων στοιχείων χρήστη') ''' Everything went fine Notify admins about the new registration ''' title = u'New user No.%s: %s' % (user.id, user.username) message = u'Name: %s %s\nDepartment: %s\nSemester: %s' % ( user.first_name, user.last_name, user_profile.school, user_profile.semester ) logger_syslog.info(title, extra = log_extra_data(user.username, request)) try: send_mail(settings.EMAIL_SUBJECT_PREFIX + title, message, settings.SERVER_EMAIL, [settings.ADMINS[0][1]]) except Exception as error: logger_syslog.error(error, extra = log_extra_data(user.username, request)) logger_mail.exception(error) ''' Return the new user object ''' return user