class PrivateMessageSerializer(Serializer): # These are essentially permissioned in the conversation, since messages # are never rendered outside of a conversation. No need to run the checks # again. id = Attribute() conv_id = Attribute() user = Attribute(nested=('id', 'username')) time = Attribute() contents = Attribute()
class ForumPostSerializer(Serializer): id = Attribute() thread = Attribute(nested=('id', 'topic')) user = Attribute() contents = Attribute() time = Attribute() edited_time = Attribute() sticky = Attribute() editor = Attribute() deleted = Attribute(permission='forums_posts_modify_advanced', self_access=False) edit_history = Attribute(permission='forums_posts_modify_advanced', self_access=False)
class APIKeySerializer(Serializer): hash = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) user_id = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) last_used = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) ip = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) user_agent = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) revoked = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) permanent = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) timeout = Attribute(permission=ApikeyPermissions.VIEW_OTHERS) permissions = Attribute(permission=ApikeyPermissions.VIEW_OTHERS)
class ForumSerializer(Serializer): id = Attribute() name = Attribute() description = Attribute() category = Attribute(nested=('id', 'name')) position = Attribute() thread_count = Attribute() threads = Attribute(nested=False) deleted = Attribute(permission='forums_forums_modify') last_updated_thread = Attribute()
class PrivateConversationSerializer(Serializer): id = Attribute(permission=MessagePermissions.VIEW_OTHERS) topic = Attribute(permission=MessagePermissions.VIEW_OTHERS) last_response_time = Attribute(permission=MessagePermissions.VIEW_OTHERS) read = Attribute(permission=MessagePermissions.VIEW_OTHERS) sticky = Attribute(permission=MessagePermissions.VIEW_OTHERS) messages = Attribute(nested=False, permission=MessagePermissions.VIEW_OTHERS) messages_count = Attribute(permission=MessagePermissions.VIEW_OTHERS) members = Attribute(permission=MessagePermissions.VIEW_OTHERS)
class WikiRevisionSerializer(Serializer): revision_id = Attribute() language = Attribute() parent_article = Attribute(nested=False) title = Attribute() editor = Attribute(nested=('id', 'username')) time = Attribute() contents = Attribute()
class ForumPollSerializer(Serializer): id = Attribute() thread = Attribute(nested=('id', 'topic')) question = Attribute() closed = Attribute() featured = Attribute() choices = Attribute()
class NotificationSerializer(Serializer): id = Attribute(permission=NotificationPermissions.VIEW_OTHERS) user_id = Attribute(permission=NotificationPermissions.VIEW_OTHERS) type = Attribute(permission=NotificationPermissions.VIEW_OTHERS) time = Attribute(permission=NotificationPermissions.VIEW_OTHERS) contents = Attribute(permission=NotificationPermissions.VIEW_OTHERS) read = Attribute(permission=NotificationPermissions.VIEW_OTHERS)
class ForumCategorySerializer(Serializer): id = Attribute() name = Attribute() description = Attribute() position = Attribute() forums = Attribute(nested=False) deleted = Attribute(permission='forums_forums_modify')
class WikiArticleSerializer(Serializer): id = Attribute() title = Attribute() contents = Attribute() aliases = Attribute() latest_revision = Attribute() languages = Attribute()
class InviteSerializer(Serializer): code = Attribute(permission=InvitePermissions.VIEW_OTHERS) email = Attribute(permission=InvitePermissions.VIEW_OTHERS) time_sent = Attribute(permission=InvitePermissions.VIEW_OTHERS) expired = Attribute(permission=InvitePermissions.VIEW_OTHERS) invitee = Attribute(permission=InvitePermissions.VIEW_OTHERS) from_ip = Attribute(permission=InvitePermissions.VIEW_OTHERS, self_access=False) inviter = Attribute( permission=InvitePermissions.VIEW_OTHERS, nested=False, self_access=False, )
def modify_core(): User.assign_attrs( __cache_key_forum_post_count__='users_{id}_forum_post_count', __cache_key_forum_thread_count__='users_{id}_forum_thread_count', forum_thread_count=forum_thread_count, forum_post_count=forum_post_count, forum_permissions=forum_permissions, ) UserSerializer.assign_attrs( forum_permissions=Attribute(permission='users_moderate', nested=False)) Permissions.permission_regexes['basic'] += [ re.compile('forumaccess_forum_\d+$'), re.compile('forumaccess_thread_\d+$'), ] Config.BASIC_PERMISSIONS += [ 'forums_posts_create', 'forums_threads_create', ]
class UserSerializer(Serializer): id = Attribute() username = Attribute() enabled = Attribute() user_class = Attribute() secondary_classes = Attribute() uploaded = Attribute() downloaded = Attribute() email = Attribute(permission=UserPermissions.MODERATE) locked = Attribute(permission=UserPermissions.MODERATE) invites = Attribute(permission=UserPermissions.MODERATE) inviter = Attribute(permission=UserPermissions.MODERATE, self_access=False, nested=False) api_keys = Attribute(permission=UserPermissions.MODERATE, nested=False) basic_permissions = Attribute(permission=UserPermissions.MODERATE, self_access=False, nested=False) permissions = Attribute(permission=UserPermissions.MODERATE_ADVANCED, nested=False)
class ForumPollChoiceSerializer(Serializer): id = Attribute() choice = Attribute() answers = Attribute()
class ForumThreadSerializer(Serializer): id = Attribute() topic = Attribute() forum = Attribute(nested=('id', )) creator = Attribute(nested=('id', 'username')) locked = Attribute() sticky = Attribute() created_time = Attribute() poll = Attribute(nested=False) last_post = Attribute() last_viewed_post = Attribute() subscribed = Attribute() post_count = Attribute() posts = Attribute(nested=False) thread_notes = Attribute(permission='forums_threads_modify') deleted = Attribute(permission='forums_threads_modify_advanced')
class ForumPostEditHistorySerializer(Serializer): id = Attribute(permission='forums_posts_modify_advanced') editor = Attribute(permission='forums_posts_modify_advanced') contents = Attribute(permission='forums_posts_modify_advanced') time = Attribute(permission='forums_posts_modify_advanced')
class ForumThreadNoteSerializer(Serializer): id = Attribute(permission='forums_threads_modify') note = Attribute(permission='forums_threads_modify') user = Attribute(nested=('id', 'username'), permission='forums_threads_modify') time = Attribute(permission='forums_threads_modify')
class WikiLanguageSerializer(Serializer): id = Attribute() language = Attribute()
class WikiTranslationSerializer(Serializer): parent_article = Attribute() language = Attribute() title = Attribute() contents = Attribute() latest_revision = Attribute()