autograder.model.user
1import enum 2import typing 3 4import lms.model.users 5 6class CourseRole(enum.Enum): 7 """ 8 Different roles a user can have on an autograder course. 9 """ 10 11 UNKNOWN = 'unknown' 12 OTHER = 'other' 13 STUDENT = 'student' 14 GRADER = 'grader' 15 ADMIN = 'admin' 16 OWNER = 'owner' 17 18 def __str__(self) -> str: 19 return str(self.value) 20 21 @classmethod 22 def has_value(cls, value: typing.Any) -> bool: 23 """ 24 Check if a value is present in the enum. 25 Required for older versions of Python. 26 """ 27 28 return (value is not None) and (str(value).upper() in cls.__members__) 29 30class ServerRole(enum.Enum): 31 """ 32 Different roles a user can have on an autograder server. 33 """ 34 35 UNKNOWN = 'unknown' 36 USER = 'user' 37 CREATOR = 'creator' 38 ADMIN = 'admin' 39 OWNER = 'owner' 40 41 def __str__(self) -> str: 42 return str(self.value) 43 44 @classmethod 45 def has_value(cls, value: typing.Any) -> bool: 46 """ 47 Check if a value is present in the enum. 48 Required for older versions of Python. 49 """ 50 51 return (value is not None) and (str(value).upper() in cls.__members__) 52 53def make_course_user(raw_user: typing.Dict[str, typing.Any]) -> lms.model.users.CourseUser: 54 """ 55 Create an LMS Toolkit course user from raw data coming from the autograder. 56 """ 57 58 raw_user = raw_user.copy() 59 60 raw_user['id'] = raw_user['email'] 61 raw_user['raw_role'] = raw_user['role'] 62 raw_user['role'] = lms.model.users.CourseRole(raw_user['raw_role']) 63 64 return lms.model.users.CourseUser(**raw_user) 65 66def make_server_user(raw_user: typing.Dict[str, typing.Any]) -> lms.model.users.ServerUser: 67 """ 68 Create an LMS Toolkit server user from raw data coming from the autograder. 69 """ 70 71 return lms.model.users.ServerUser( 72 id = raw_user['email'], 73 **raw_user, 74 ) 75 76def promote_server_user(user: lms.model.users.ServerUser) -> lms.model.users.CourseUser: 77 """ 78 A a server admin that has been "promoted" to a course user. 79 """ 80 81 return lms.model.users.CourseUser( 82 raw_role = 'owner', 83 role = lms.model.users.CourseRole(CourseRole.OWNER.value), 84 **vars(user), 85 )
class
CourseRole(enum.Enum):
7class CourseRole(enum.Enum): 8 """ 9 Different roles a user can have on an autograder course. 10 """ 11 12 UNKNOWN = 'unknown' 13 OTHER = 'other' 14 STUDENT = 'student' 15 GRADER = 'grader' 16 ADMIN = 'admin' 17 OWNER = 'owner' 18 19 def __str__(self) -> str: 20 return str(self.value) 21 22 @classmethod 23 def has_value(cls, value: typing.Any) -> bool: 24 """ 25 Check if a value is present in the enum. 26 Required for older versions of Python. 27 """ 28 29 return (value is not None) and (str(value).upper() in cls.__members__)
Different roles a user can have on an autograder course.
UNKNOWN =
<CourseRole.UNKNOWN: 'unknown'>
OTHER =
<CourseRole.OTHER: 'other'>
STUDENT =
<CourseRole.STUDENT: 'student'>
GRADER =
<CourseRole.GRADER: 'grader'>
ADMIN =
<CourseRole.ADMIN: 'admin'>
OWNER =
<CourseRole.OWNER: 'owner'>
@classmethod
def
has_value(cls, value: Any) -> bool:
22 @classmethod 23 def has_value(cls, value: typing.Any) -> bool: 24 """ 25 Check if a value is present in the enum. 26 Required for older versions of Python. 27 """ 28 29 return (value is not None) and (str(value).upper() in cls.__members__)
Check if a value is present in the enum. Required for older versions of Python.
class
ServerRole(enum.Enum):
31class ServerRole(enum.Enum): 32 """ 33 Different roles a user can have on an autograder server. 34 """ 35 36 UNKNOWN = 'unknown' 37 USER = 'user' 38 CREATOR = 'creator' 39 ADMIN = 'admin' 40 OWNER = 'owner' 41 42 def __str__(self) -> str: 43 return str(self.value) 44 45 @classmethod 46 def has_value(cls, value: typing.Any) -> bool: 47 """ 48 Check if a value is present in the enum. 49 Required for older versions of Python. 50 """ 51 52 return (value is not None) and (str(value).upper() in cls.__members__)
Different roles a user can have on an autograder server.
UNKNOWN =
<ServerRole.UNKNOWN: 'unknown'>
USER =
<ServerRole.USER: 'user'>
CREATOR =
<ServerRole.CREATOR: 'creator'>
ADMIN =
<ServerRole.ADMIN: 'admin'>
OWNER =
<ServerRole.OWNER: 'owner'>
@classmethod
def
has_value(cls, value: Any) -> bool:
45 @classmethod 46 def has_value(cls, value: typing.Any) -> bool: 47 """ 48 Check if a value is present in the enum. 49 Required for older versions of Python. 50 """ 51 52 return (value is not None) and (str(value).upper() in cls.__members__)
Check if a value is present in the enum. Required for older versions of Python.
def
make_course_user(raw_user: Dict[str, Any]) -> lms.model.users.CourseUser:
54def make_course_user(raw_user: typing.Dict[str, typing.Any]) -> lms.model.users.CourseUser: 55 """ 56 Create an LMS Toolkit course user from raw data coming from the autograder. 57 """ 58 59 raw_user = raw_user.copy() 60 61 raw_user['id'] = raw_user['email'] 62 raw_user['raw_role'] = raw_user['role'] 63 raw_user['role'] = lms.model.users.CourseRole(raw_user['raw_role']) 64 65 return lms.model.users.CourseUser(**raw_user)
Create an LMS Toolkit course user from raw data coming from the autograder.
def
make_server_user(raw_user: Dict[str, Any]) -> lms.model.users.ServerUser:
67def make_server_user(raw_user: typing.Dict[str, typing.Any]) -> lms.model.users.ServerUser: 68 """ 69 Create an LMS Toolkit server user from raw data coming from the autograder. 70 """ 71 72 return lms.model.users.ServerUser( 73 id = raw_user['email'], 74 **raw_user, 75 )
Create an LMS Toolkit server user from raw data coming from the autograder.
def
promote_server_user(user: lms.model.users.ServerUser) -> lms.model.users.CourseUser:
77def promote_server_user(user: lms.model.users.ServerUser) -> lms.model.users.CourseUser: 78 """ 79 A a server admin that has been "promoted" to a course user. 80 """ 81 82 return lms.model.users.CourseUser( 83 raw_role = 'owner', 84 role = lms.model.users.CourseRole(CourseRole.OWNER.value), 85 **vars(user), 86 )
A a server admin that has been "promoted" to a course user.