예제 #1
0
    def _add_admin(self, **kwargs):
        netid = kwargs['net_id']
        regid = kwargs['reg_id']
        self._log.info('ADD: %s is %s in %s' % (netid,
                                                kwargs['role'],
                                                kwargs['account_id']))

        try:
            User.objects.get(reg_id=regid)
        except User.DoesNotExist:
            try:
                person = get_person_by_netid(netid)

                self._log.info('Provisioning admin: %s (%s)' % (
                    person.uwnetid, person.uwregid))

                try:
                    user = get_user_by_sis_id(person.uwregid)
                except DataFailureException as err:
                    if err.status == 404:
                        user = create_user(CanvasUser(
                            name=user_fullname(person),
                            login_id=person.uwnetid,
                            sis_user_id=person.uwregid,
                            email=user_email(person)))

                User.objects.add_user(person)

            except Exception, err:
                self._log.info('Skipped admin: %s (%s)' % (netid, err))
                return
예제 #2
0
    def _get_user_from_login(self, login):
        user = AddUser(login=login)
        try:
            try:
                person = get_person_by_gmail_id(login)
                user.login = person.login_id
            except UserPolicyException:
                person = get_person_by_netid(login)
                user.login = person.uwnetid

            user.email = user_email(person)
            user.name = user_fullname(person)
            user.regid = user_sis_id(person)

            if user.regid in self._course_users:
                user.name = self._course_users[user.regid].name
                user.status = 'present'
                user.comment = 'Already in course'

        except DataFailureException as ex:
            if ex.status != 401:
                raise
        except UserPolicyException as ex:
            user.status = 'invalid'
            user.comment = "%s" % self._prettify(str(ex))

        return user
예제 #3
0
 def __init__(self, user, status="active"):
     self.key = user_sis_id(user)
     self.data = [
         self.key,
         user.uwnetid if hasattr(user, "uwnetid") else user.login_id,
         None,
         None,
         None,
         user_fullname(user),
         None,
         None,
         user_email(user),
         status,
     ]
예제 #4
0
def section_long_name(section):
    short_name = section_short_name(section)
    if section.course_title_long is not None and len(section.course_title_long):
        name = "%s: %s" % (short_name, titleize(section.course_title_long.encode("ascii", "ignore")))
    else:
        name = short_name

    if section.is_independent_study:
        for person in section.get_instructors():
            if person.uwregid == section.independent_study_instructor_regid:
                name = "%s (%s)" % (name, user_fullname(person))
                break

    return name
예제 #5
0
    def __init__(self, user, status='active'):
        self.key = user_sis_id(user)
        name = user_fullname(user)
        if len(name) == 2:
            first_name = name[0]
            last_name = name[1]
            full_name = None
        else:
            first_name = None
            last_name = None
            full_name = name[0]

        self.data = [
            self.key,
            user.uwnetid if hasattr(user, 'uwnetid') else user.login_id,
            None, first_name, last_name, full_name, None, None,
            user_email(user),
            status]