Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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