onadata.apps.api package¶
Subpackages¶
- onadata.apps.api.management package
- Subpackages
- onadata.apps.api.management.commands package
- Submodules
- onadata.apps.api.management.commands.apply_can_add_project_perms module
- onadata.apps.api.management.commands.assign_team_member_permission module
- onadata.apps.api.management.commands.cleanup_permissions module
- onadata.apps.api.management.commands.create_default_project module
- onadata.apps.api.management.commands.create_user_profiles module
- onadata.apps.api.management.commands.delete_users module
- onadata.apps.api.management.commands.fix_readonly_role_perms module
- onadata.apps.api.management.commands.increase_odk_token_lifetime module
- onadata.apps.api.management.commands.migrate_group_permissions module
- onadata.apps.api.management.commands.migrate_permissions module
- onadata.apps.api.management.commands.reassign_permission module
- onadata.apps.api.management.commands.regenerate_auth_tokens module
- onadata.apps.api.management.commands.reset_rest_services module
- onadata.apps.api.management.commands.retrieve_org_or_project_list module
- onadata.apps.api.management.commands.set_api_permissions module
- Module contents
- onadata.apps.api.management.commands package
- Module contents
- Subpackages
- onadata.apps.api.migrations package
- Submodules
- onadata.apps.api.migrations.0001_initial module
- onadata.apps.api.migrations.0002_auto_20151014_0909 module
- onadata.apps.api.migrations.0003_auto_20180425_0754 module
- onadata.apps.api.migrations.0004_auto_20190125_0517 module
- onadata.apps.api.migrations.0005_auto_20191018_0735 module
- onadata.apps.api.migrations.0006_auto_20191025_0730 module
- onadata.apps.api.migrations.0007_odktoken_expires module
- Module contents
- onadata.apps.api.models package
- Submodules
- onadata.apps.api.models.odk_token module
ODKTokenODKToken.ACTIVEODKToken.DoesNotExistODKToken.INACTIVEODKToken.MultipleObjectsReturnedODKToken.STATUS_CHOICESODKToken.check_key()ODKToken.createdODKToken.expiresODKToken.generate_key()ODKToken.get_next_by_created()ODKToken.get_previous_by_created()ODKToken.get_status_display()ODKToken.keyODKToken.objectsODKToken.raw_keyODKToken.save()ODKToken.statusODKToken.userODKToken.user_id
- onadata.apps.api.models.organization_profile module
OrgProfileGroupObjectPermissionOrgProfileGroupObjectPermission.DoesNotExistOrgProfileGroupObjectPermission.MultipleObjectsReturnedOrgProfileGroupObjectPermission.content_objectOrgProfileGroupObjectPermission.content_object_idOrgProfileGroupObjectPermission.groupOrgProfileGroupObjectPermission.group_idOrgProfileGroupObjectPermission.idOrgProfileGroupObjectPermission.permissionOrgProfileGroupObjectPermission.permission_id
OrgProfileUserObjectPermissionOrgProfileUserObjectPermission.DoesNotExistOrgProfileUserObjectPermission.MultipleObjectsReturnedOrgProfileUserObjectPermission.content_objectOrgProfileUserObjectPermission.content_object_idOrgProfileUserObjectPermission.idOrgProfileUserObjectPermission.permissionOrgProfileUserObjectPermission.permission_idOrgProfileUserObjectPermission.userOrgProfileUserObjectPermission.user_id
OrganizationProfileOrganizationProfile.DoesNotExistOrganizationProfile.MultipleObjectsReturnedOrganizationProfile.creatorOrganizationProfile.creator_idOrganizationProfile.emailOrganizationProfile.is_organizationOrganizationProfile.is_organization_owner()OrganizationProfile.orgprofilegroupobjectpermission_setOrganizationProfile.orgprofileuserobjectpermission_setOrganizationProfile.remove_user_from_organization()OrganizationProfile.save()OrganizationProfile.userprofile_ptrOrganizationProfile.userprofile_ptr_id
add_user_to_team()create_organization_team()create_owner_team_and_assign_permissions()get_or_create_organization_owners_team()get_organization_members_team()org_profile_post_delete_callback()
- onadata.apps.api.models.team module
- onadata.apps.api.models.temp_token module
- Module contents
- onadata.apps.api.tests package
- Subpackages
- onadata.apps.api.tests.management package
- onadata.apps.api.tests.models package
- Submodules
- onadata.apps.api.tests.models.test_abstract_models module
- onadata.apps.api.tests.models.test_odk_token module
- onadata.apps.api.tests.models.test_organization_profile module
- onadata.apps.api.tests.models.test_project module
- onadata.apps.api.tests.models.test_team module
- onadata.apps.api.tests.models.test_temp_token module
- Module contents
- onadata.apps.api.tests.permissions package
- onadata.apps.api.tests.views package
- onadata.apps.api.tests.viewsets package
- Submodules
- onadata.apps.api.tests.viewsets.test_abstract_viewset module
- onadata.apps.api.tests.viewsets.test_attachment_viewset module
- onadata.apps.api.tests.viewsets.test_briefcase_viewset module
- onadata.apps.api.tests.viewsets.test_charts_viewset module
- onadata.apps.api.tests.viewsets.test_connect_viewset module
- onadata.apps.api.tests.viewsets.test_data_viewset module
- onadata.apps.api.tests.viewsets.test_dataview_viewset module
- onadata.apps.api.tests.viewsets.test_entity_list_viewset module
- onadata.apps.api.tests.viewsets.test_export_viewset module
- onadata.apps.api.tests.viewsets.test_floip_viewset module
- onadata.apps.api.tests.viewsets.test_legacy_exports module
- onadata.apps.api.tests.viewsets.test_media_viewset module
- onadata.apps.api.tests.viewsets.test_merged_xform_viewset module
- onadata.apps.api.tests.viewsets.test_messaging_stats_viewset module
- onadata.apps.api.tests.viewsets.test_metadata_viewset module
- onadata.apps.api.tests.viewsets.test_note_viewset module
- onadata.apps.api.tests.viewsets.test_ona_api module
- onadata.apps.api.tests.viewsets.test_open_data_viewset module
- onadata.apps.api.tests.viewsets.test_organization_profile_viewset module
- onadata.apps.api.tests.viewsets.test_osm_viewset module
- onadata.apps.api.tests.viewsets.test_project_viewset module
- onadata.apps.api.tests.viewsets.test_stats_viewset module
- onadata.apps.api.tests.viewsets.test_submission_review_viewset module
- onadata.apps.api.tests.viewsets.test_tableau_viewset module
- onadata.apps.api.tests.viewsets.test_team_viewset module
- onadata.apps.api.tests.viewsets.test_user_profile_viewset module
- onadata.apps.api.tests.viewsets.test_user_viewset module
- onadata.apps.api.tests.viewsets.test_widget_viewset module
- onadata.apps.api.tests.viewsets.test_xform_list_viewset module
- onadata.apps.api.tests.viewsets.test_xform_submission_viewset module
- onadata.apps.api.tests.viewsets.test_xform_viewset module
- Module contents
- Submodules
- onadata.apps.api.tests.mocked_data module
- onadata.apps.api.tests.test_tasks module
- onadata.apps.api.tests.test_tools module
- Module contents
- Subpackages
- onadata.apps.api.urls package
- onadata.apps.api.viewsets package
- Subpackages
- Submodules
- onadata.apps.api.viewsets.attachment_viewset module
AttachmentViewSetAttachmentViewSet.content_negotiation_classAttachmentViewSet.count()AttachmentViewSet.filter_backendsAttachmentViewSet.list()AttachmentViewSet.lookup_fieldAttachmentViewSet.pagination_classAttachmentViewSet.permission_classesAttachmentViewSet.querysetAttachmentViewSet.renderer_classesAttachmentViewSet.retrieve()AttachmentViewSet.serializer_class
get_attachment_data()
- onadata.apps.api.viewsets.briefcase_viewset module
BriefcaseViewsetBriefcaseViewset.authentication_classesBriefcaseViewset.create()BriefcaseViewset.filter_backendsBriefcaseViewset.filter_queryset()BriefcaseViewset.get_object()BriefcaseViewset.list()BriefcaseViewset.manifest()BriefcaseViewset.media()BriefcaseViewset.permission_classesBriefcaseViewset.querysetBriefcaseViewset.renderer_classesBriefcaseViewset.retrieve()BriefcaseViewset.serializer_classBriefcaseViewset.template_name
- onadata.apps.api.viewsets.charts_viewset module
- onadata.apps.api.viewsets.connect_viewset module
ConnectViewSetConnectViewSet.create()ConnectViewSet.expire()ConnectViewSet.list()ConnectViewSet.lookup_fieldConnectViewSet.odk_token()ConnectViewSet.permission_classesConnectViewSet.querysetConnectViewSet.regenerate_auth_token()ConnectViewSet.reset()ConnectViewSet.serializer_classConnectViewSet.starred()
user_profile_w_token_response()
- onadata.apps.api.viewsets.data_viewset module
AuthenticatedDataViewSetDataViewSetDataViewSet.data_countDataViewSet.destroy()DataViewSet.enketo()DataViewSet.extra_lookup_fieldsDataViewSet.filter_backendsDataViewSet.filter_queryset()DataViewSet.get_object()DataViewSet.get_serializer_class()DataViewSet.history()DataViewSet.labels()DataViewSet.list()DataViewSet.lookup_fieldDataViewSet.lookup_fieldsDataViewSet.paginate_queryset()DataViewSet.pagination_classDataViewSet.permission_classesDataViewSet.public_data_endpointDataViewSet.querysetDataViewSet.renderer_classesDataViewSet.retrieve()DataViewSet.serializer_classDataViewSet.set_object_list()
delete_instance()get_data_and_form()
- onadata.apps.api.viewsets.dataview_viewset module
DataViewViewSetDataViewViewSet.charts()DataViewViewSet.data()DataViewViewSet.destroy()DataViewViewSet.export_async()DataViewViewSet.form()DataViewViewSet.form_details()DataViewViewSet.get_serializer_class()DataViewViewSet.list()DataViewViewSet.lookup_fieldDataViewViewSet.pagination_classDataViewViewSet.permission_classesDataViewViewSet.querysetDataViewViewSet.renderer_classesDataViewViewSet.serializer_classDataViewViewSet.xlsx_export()
apply_filters()dataview_post_delete_callback()dataview_post_save_callback()filter_to_field_lookup()get_dataview_instances()get_field_lookup()get_filter_kwargs()get_form_field_chart_url()
- onadata.apps.api.viewsets.entity_list_viewset module
EntityListViewSetEntityListViewSet.create()EntityListViewSet.download()EntityListViewSet.entities()EntityListViewSet.entities_search_fieldsEntityListViewSet.filter_backendsEntityListViewSet.get_serializer_class()EntityListViewSet.get_serializer_context()EntityListViewSet.pagination_classEntityListViewSet.perform_destroy()EntityListViewSet.permission_classesEntityListViewSet.querysetEntityListViewSet.retrieve()EntityListViewSet.serializer_class
- onadata.apps.api.viewsets.export_viewset module
- onadata.apps.api.viewsets.floip_viewset module
FloipViewSetFloipViewSet.filter_backendsFloipViewSet.get_object()FloipViewSet.get_serializer_class()FloipViewSet.get_success_headers()FloipViewSet.lookup_fieldFloipViewSet.pagination_classFloipViewSet.parser_classesFloipViewSet.permission_classesFloipViewSet.querysetFloipViewSet.renderer_classesFloipViewSet.responses()FloipViewSet.serializer_class
FlowResultsJSONRenderer
- onadata.apps.api.viewsets.media_viewset module
- onadata.apps.api.viewsets.merged_xform_viewset module
MergedXFormViewSetMergedXFormViewSet.data()MergedXFormViewSet.filter_backendsMergedXFormViewSet.form()MergedXFormViewSet.get_serializer_class()MergedXFormViewSet.list()MergedXFormViewSet.pagination_classMergedXFormViewSet.permission_classesMergedXFormViewSet.querysetMergedXFormViewSet.renderer_classesMergedXFormViewSet.serializer_class
- onadata.apps.api.viewsets.messaging_stats_viewset module
- onadata.apps.api.viewsets.metadata_viewset module
- onadata.apps.api.viewsets.note_viewset module
- onadata.apps.api.viewsets.open_data_viewset module
OpenDataViewSetOpenDataViewSet.MAX_INSTANCES_PER_REQUESTOpenDataViewSet.data()OpenDataViewSet.destroy()OpenDataViewSet.flatten_xform_columns()OpenDataViewSet.flattened_dictOpenDataViewSet.get_streaming_response()OpenDataViewSet.get_tableau_column_headers()OpenDataViewSet.get_tableau_type()OpenDataViewSet.lookup_fieldOpenDataViewSet.pagination_classOpenDataViewSet.permission_classesOpenDataViewSet.querysetOpenDataViewSet.schema()OpenDataViewSet.serializer_classOpenDataViewSet.uuid()
process_tableau_data()replace_special_characters_with_underscores()
- onadata.apps.api.viewsets.organization_profile_viewset module
OrganizationProfileViewSetOrganizationProfileViewSet.create()OrganizationProfileViewSet.destroy()OrganizationProfileViewSet.filter_backendsOrganizationProfileViewSet.get_serializer_class()OrganizationProfileViewSet.lookup_fieldOrganizationProfileViewSet.members()OrganizationProfileViewSet.permission_classesOrganizationProfileViewSet.querysetOrganizationProfileViewSet.retrieve()OrganizationProfileViewSet.rotate_key()OrganizationProfileViewSet.serializer_classOrganizationProfileViewSet.update()
serializer_from_settings()
- onadata.apps.api.viewsets.osm_viewset module
OsmViewSetOsmViewSet.extra_lookup_fieldsOsmViewSet.filter_queryset()OsmViewSet.get_object()OsmViewSet.get_serializer_class()OsmViewSet.list()OsmViewSet.lookup_fieldOsmViewSet.lookup_fieldsOsmViewSet.permission_classesOsmViewSet.public_data_endpointOsmViewSet.querysetOsmViewSet.renderer_classesOsmViewSet.retrieve()OsmViewSet.serializer_class
- onadata.apps.api.viewsets.project_viewset module
ProjectViewSetProjectViewSet.destroy()ProjectViewSet.extra_lookup_fieldsProjectViewSet.filter_backendsProjectViewSet.forms()ProjectViewSet.get_queryset()ProjectViewSet.get_serializer_class()ProjectViewSet.invitations()ProjectViewSet.list()ProjectViewSet.lookup_fieldProjectViewSet.pagination_classProjectViewSet.permission_classesProjectViewSet.querysetProjectViewSet.resend_invitation()ProjectViewSet.retrieve()ProjectViewSet.revoke_invitation()ProjectViewSet.serializer_classProjectViewSet.share()ProjectViewSet.star()ProjectViewSet.update()
- onadata.apps.api.viewsets.stats_viewset module
- onadata.apps.api.viewsets.submission_review_viewset module
- onadata.apps.api.viewsets.submissionstats_viewset module
- onadata.apps.api.viewsets.team_viewset module
- onadata.apps.api.viewsets.user_profile_viewset module
UserProfileViewSetUserProfileViewSet.change_password()UserProfileViewSet.create()UserProfileViewSet.filter_backendsUserProfileViewSet.get_object()UserProfileViewSet.lookup_fieldUserProfileViewSet.monthly_submissions()UserProfileViewSet.orderingUserProfileViewSet.partial_update()UserProfileViewSet.permission_classesUserProfileViewSet.querysetUserProfileViewSet.retrieve()UserProfileViewSet.send_verification_email()UserProfileViewSet.serializer_classUserProfileViewSet.update()UserProfileViewSet.verify_email()
change_password_attempts()check_if_key_exists()check_user_lockout()replace_key_value()serializer_from_settings()set_is_email_verified()
- onadata.apps.api.viewsets.user_viewset module
- onadata.apps.api.viewsets.widget_viewset module
- onadata.apps.api.viewsets.xform_list_viewset module
PreviewXFormListViewSetXFormListViewSetXFormListViewSet.authentication_classesXFormListViewSet.content_negotiation_classXFormListViewSet.filter_backendsXFormListViewSet.filter_queryset()XFormListViewSet.filterset_classXFormListViewSet.get_object()XFormListViewSet.get_serializer()XFormListViewSet.get_serializer_class()XFormListViewSet.list()XFormListViewSet.manifest()XFormListViewSet.media()XFormListViewSet.permission_classesXFormListViewSet.querysetXFormListViewSet.renderer_classesXFormListViewSet.retrieve()XFormListViewSet.serializer_classXFormListViewSet.template_nameXFormListViewSet.throttle_scope
- onadata.apps.api.viewsets.xform_submission_viewset module
FLOIPParserXFormSubmissionViewSetXFormSubmissionViewSet.authentication_classesXFormSubmissionViewSet.create()XFormSubmissionViewSet.filter_backendsXFormSubmissionViewSet.get_serializer()XFormSubmissionViewSet.get_serializer_class()XFormSubmissionViewSet.handle_exception()XFormSubmissionViewSet.modelXFormSubmissionViewSet.parser_classesXFormSubmissionViewSet.permission_classesXFormSubmissionViewSet.renderer_classesXFormSubmissionViewSet.serializer_classXFormSubmissionViewSet.template_nameXFormSubmissionViewSet.throttle_scope
- onadata.apps.api.viewsets.xform_viewset module
XFormViewSetXFormViewSet.clone()XFormViewSet.create()XFormViewSet.create_async()XFormViewSet.csv_import()XFormViewSet.data_import()XFormViewSet.delete_async()XFormViewSet.destroy()XFormViewSet.enketo()XFormViewSet.export_async()XFormViewSet.extra_lookup_fieldsXFormViewSet.filter_backendsXFormViewSet.filterset_fieldsXFormViewSet.form()XFormViewSet.get_serializer_class()XFormViewSet.list()XFormViewSet.login()XFormViewSet.lookup_fieldXFormViewSet.pagination_classXFormViewSet.partial_update()XFormViewSet.permission_classesXFormViewSet.public_forms_endpointXFormViewSet.querysetXFormViewSet.renderer_classesXFormViewSet.retrieve()XFormViewSet.serializer_classXFormViewSet.share()XFormViewSet.survey_preview()XFormViewSet.updatable_fieldsXFormViewSet.versions()
get_survey_dict()get_survey_xml()parse_webform_return_url()result_has_error()upload_to_survey_draft()value_for_type()
- Module contents
Submodules¶
onadata.apps.api.admin module¶
API Django admin amendments.
- class onadata.apps.api.admin.FilterSuperuserMixin¶
Bases:
objectFilter by request user and give full access to superuser.
- get_queryset(request)¶
Filter by request.user unless is_superuser.
- class onadata.apps.api.admin.OrganizationProfileAdmin(model, admin_site)¶
Bases:
FilterSuperuserMixin,ModelAdminFilter by request.user unless is_superuser.
- property media¶
- class onadata.apps.api.admin.TeamAdmin(model, admin_site)¶
Bases:
FilterSuperuserMixin,ModelAdminFilter by request.user unless is_superuser.
- property media¶
- class onadata.apps.api.admin.TempTokenProfileAdmin(model, admin_site)¶
Bases:
FilterSuperuserMixin,ModelAdminFilter by request.user unless is_superuser.
- property media¶
onadata.apps.api.permissions module¶
API permissions module.
- class onadata.apps.api.permissions.AbstractHasPermissionMixin¶
Bases:
objectChecks that the requesting user has permissions to access each of the models in the model_classes instance variable.
- has_permission(request, view)¶
Check request.user is authenticated and the user has permissions.
- class onadata.apps.api.permissions.AlternateHasObjectPermissionMixin¶
Bases:
objectAlternateHasObjectPermissionMixin - checks if user has read permissions.
- class onadata.apps.api.permissions.AttachmentObjectPermissions¶
Bases:
AlternateHasObjectPermissionMixin,DjangoObjectPermissionsAttachment ObjectPermissions - apply XForm model options.
- authenticated_users_only = False¶
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.ConnectViewsetPermissions¶
Bases:
IsAuthenticatedConnectViewsetPermissions - allows reset passwords to all users.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.DataViewViewsetPermissions¶
Bases:
AlternateHasObjectPermissionMixin,ViewDjangoObjectPermissions,AbstractHasPermissionMixin,DjangoObjectPermissionsDataView ViewSetPermissions - applies projet permissions to a filtered dataset.
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- has_permission(request, view)¶
Check request.user is authenticated and the user has permissions.
- model_classes = [<class 'onadata.apps.logger.models.project.Project'>]¶
- class onadata.apps.api.permissions.DjangoObjectPermissionsAllowAnon¶
Bases:
DjangoObjectPermissionsDjangoObjectPermissionsAllowAnon - allow anonymous access permission.
- authenticated_users_only = False¶
- class onadata.apps.api.permissions.DjangoObjectPermissionsIgnoreModelPerm¶
Bases:
DjangoObjectPermissionsSimilar to DjangoModelPermissions, except that model permissions are ignored.
- has_permission(request, view)¶
Override has_permission method
- class onadata.apps.api.permissions.ExportDjangoObjectPermission¶
Bases:
AlternateHasObjectPermissionMixin,ViewDjangoObjectPermissionsExport DjangoObjectPermission - checks XForm permissions for export permissions.
- authenticated_users_only = False¶
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- perms_map = {'DELETE': ['logger.delete_xform'], 'GET': ['logger.view_xform'], 'HEAD': [], 'OPTIONS': [], 'PATCH': ['logger.change_xform'], 'POST': ['logger.add_xform'], 'PUT': ['logger.change_xform']}¶
- class onadata.apps.api.permissions.HasMetadataPermissionMixin¶
Bases:
AbstractHasPermissionMixinUse the Project, XForm, or both model classes to check permissions based on the request data keys.
- has_permission(request, view)¶
Check request.user is authenticated and the user has permissions.
- class onadata.apps.api.permissions.IsAuthenticatedSubmission¶
Bases:
BasePermissionIsAuthenticatedSubmission - checks if profile requires authentication during a submission request.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.MetaDataObjectPermissions¶
Bases:
AlternateHasObjectPermissionMixin,HasMetadataPermissionMixin,DjangoObjectPermissionsMetaData ObjectPermissions - apply Xform permision for given response.
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.OpenDataViewSetPermissions¶
Bases:
IsAuthenticated,AlternateHasObjectPermissionMixin,DjangoObjectPermissionsAllowAnonOpenDataViewSetPermissions - allow anonymous access to schema and data end-points of an open dataset.
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.OrganizationProfilePermissions¶
Bases:
DjangoObjectPermissionsAllowAnonOrganizationProfilePermissions - allow authenticated users to delete an org
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.ProjectPermissions¶
Bases:
DjangoObjectPermissionsProjectPermissions - allows anonymous to star a project.
- authenticated_users_only = False¶
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.RestServiceObjectPermissions¶
Bases:
AlternateHasObjectPermissionMixin,HasMetadataPermissionMixin,DjangoObjectPermissionsRestService ObjectPermissions - apply XForm permisions for a RestService model.
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.SubmissionReviewPermissions¶
Bases:
XFormPermissionsCustom Permission Checks for SubmissionReviews
- has_object_permission(request, view, obj)¶
Custom has_object_permission method
- has_permission(request, view)¶
Custom has_permission method
- perms_map = {'DELETE': ['logger.delete_xform'], 'GET': [], 'HEAD': [], 'OPTIONS': [], 'PATCH': ['logger.change_xform'], 'POST': ['logger.add_xform'], 'PUT': ['logger.change_xform']}¶
- class onadata.apps.api.permissions.UserProfilePermissions¶
Bases:
DjangoObjectPermissionsUserProfilePermissions - allows anonymous users to create a profile.
- authenticated_users_only = False¶
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.UserViewSetPermissions¶
Bases:
DjangoModelPermissionsOrAnonReadOnlyUser ViewSetPermissions - do not allow user search for anonymous users.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
- class onadata.apps.api.permissions.ViewDjangoObjectPermissions¶
Bases:
DjangoObjectPermissionsView DjangoObjectPermissions - applies view_<model_name> permissions for GET requests.
- perms_map = {'DELETE': ['%(app_label)s.delete_%(model_name)s'], 'GET': ['%(app_label)s.view_%(model_name)s'], 'HEAD': [], 'OPTIONS': [], 'PATCH': ['%(app_label)s.change_%(model_name)s'], 'POST': ['%(app_label)s.add_%(model_name)s'], 'PUT': ['%(app_label)s.change_%(model_name)s']}¶
- class onadata.apps.api.permissions.WidgetViewSetPermissions¶
Bases:
AlternateHasObjectPermissionMixin,ViewDjangoObjectPermissions,AbstractHasPermissionMixin,DjangoObjectPermissionsWidget ViewSetPermissions - apply project permissions check.
- authenticated_users_only = False¶
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- has_permission(request, view)¶
Check request.user is authenticated and the user has permissions.
- model_classes = [<class 'onadata.apps.logger.models.project.Project'>]¶
- class onadata.apps.api.permissions.XFormPermissions¶
Bases:
DjangoObjectPermissionsXFormPermissions - custom permissions check on XForm viewset.
- authenticated_users_only = False¶
- has_object_permission(request, view, obj)¶
Return True if permission is granted, False otherwise.
- has_permission(request, view)¶
Return True if permission is granted, False otherwise.
onadata.apps.api.storage module¶
Storage module for the api app
- class onadata.apps.api.storage.ODKTokenAccountStorage¶
Bases:
AccountStorageDigest Account Backend class
In order to utilize this storage as the default account storage for Digest Authentication set the DIGEST_ACCOUNT_BACKEND variable in your local_settings to ‘onadata.apps.api.storage.ODKTokenAccountStorage’
- GET_PARTIAL_DIGEST_QUERY = "\n SELECT django_digest_partialdigest.login,\n django_digest_partialdigest.partial_digest\n FROM django_digest_partialdigest\n INNER JOIN auth_user ON\n auth_user.id = django_digest_partialdigest.user_id\n INNER JOIN api_odktoken ON\n api_odktoken.user_id = django_digest_partialdigest.user_id\n WHERE django_digest_partialdigest.login = %s\n AND django_digest_partialdigest.confirmed\n AND auth_user.is_active\n AND api_odktoken.status='1'\n "¶
- get_partial_digest(username)¶
Checks that the returned partial digest is associated with a Token that isn’t past it’s expire date.
Sets an ODK Token to Inactive if the associate token has passed its expiry date
onadata.apps.api.tasks module¶
Celery api.tasks module.
- class onadata.apps.api.tasks.AutoRetryTask¶
Bases:
TaskBase task class for retrying exceptions
- autoretry_for = (<class 'django.db.utils.DatabaseError'>, <class 'ConnectionError'>, <class 'django.db.utils.OperationalError'>)¶
- ignore_result = False¶
If enabled the worker won’t store task state and return values for this task. Defaults to the
task_ignore_resultsetting.
- max_retries = 5¶
Maximum number of retries before giving up. If set to
None, it will never stop retrying.
- priority = None¶
Default task priority.
- rate_limit = None¶
Rate limit for this task type. Examples:
None(no rate limit), ‘100/s’ (hundred tasks a second), ‘100/m’ (hundred tasks a minute),`’100/h’` (hundred tasks an hour)
- reject_on_worker_lost = None¶
Even if
acks_lateis enabled, the worker will acknowledge tasks when the worker process executing them abruptly exits or is signaled (e.g., :sig:`KILL`/:sig:`INT`, etc).Setting this to true allows the message to be re-queued instead, so that the task will execute again by the same worker, or another worker.
Warning: Enabling this can cause message loops; make sure you know what you’re doing.
- request_stack = <celery.utils.threads._LocalStack object>¶
Task request stack, the current request will be the topmost.
- retry_backoff = 3¶
- serializer = 'json'¶
The name of a serializer that are registered with
kombu.serialization.registry. Default is ‘json’.
- store_errors_even_if_ignored = False¶
When enabled errors will be stored even if the task is otherwise configured to ignore results.
- track_started = True¶
If enabled the task will report its status as ‘started’ when the task is executed by a worker. Disabled by default as the normal behavior is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried.
Having a ‘started’ status can be useful for when there are long running tasks and there’s a need to report what task is currently running.
The application default can be overridden using the
task_track_startedsetting.
- typing = True¶
Enable argument checking. You can set this to false if you don’t want the signature to be checked when calling the task. Defaults to
app.strict_typing.
- onadata.apps.api.tasks.get_async_status(job_uuid)¶
Gets progress status or result
- onadata.apps.api.tasks.recreate_tmp_file(name, path, mime_type)¶
Creates a TemporaryUploadedFile from a file path with given name
onadata.apps.api.tools module¶
API utility functions.
- onadata.apps.api.tools.add_tags_to_instance(request, instance)¶
Add tags to an instance.
- onadata.apps.api.tools.add_team_to_project(team, project)¶
Adds a team to a project
- Parameters:
team
project
- Returns:
True if successful or project has already been added to the team
- onadata.apps.api.tools.add_user_to_organization(organization, user, role=None)¶
Add a user to an organization
Add user to organization and all projects in the organization
- Parameters:
organization – OrganizationProfile instance
user – User instance
role – Role name
- Returns:
None
- onadata.apps.api.tools.check_inherit_permission_from_project(xform_id, user)¶
Checks if a user has the same project permissions for the given xform_id, if there is a difference applies the project permissions to the user for the given xform_id.
- onadata.apps.api.tools.create_organization(name, creator)¶
Organization created by a user - create a team, OwnerTeam with full permissions to the creator - Team(name=’Owners’, organization=organization).save()
- onadata.apps.api.tools.create_organization_object(org_name, creator, attrs=None)¶
Creates an OrganizationProfile object without saving to the database
- onadata.apps.api.tools.create_organization_project(organization, project_name, created_by)¶
Creates a project for a given organization :param organization: User organization :param project_name :param created_by: User with permissions to create projects within the organization
- Returns:
a Project instance
- onadata.apps.api.tools.do_publish_xlsform(user, post, files, owner, id_string=None, project=None)¶
Publishes XLSForm.
- onadata.apps.api.tools.generate_tmp_path(uploaded_csv_file)¶
Write file to temporary folder if not already there :param uploaded_csv_file: :return: path to the tmp folder
- onadata.apps.api.tools.get_accessible_forms(owner=None, shared_form=False, shared_data=False)¶
Returns XForm queryset of the forms based on the arguments owner, shared_form and shared_data.
Returns only public forms if owner is ‘public’ otherwise returns forms belonging to owner.
- onadata.apps.api.tools.get_baseviewset_class()¶
Checks the setting if the default viewset is implementded otherwise loads the default in onadata :return: the default baseviewset
- onadata.apps.api.tools.get_host_domain(request)¶
Get host from reques or check the Site model
- onadata.apps.api.tools.get_instance_xform_or_none(instance_id)¶
Returns the XForm an Instance belongs to
- onadata.apps.api.tools.get_media_file_response(metadata, request=None)¶
Returns a HTTP response for media files.
HttpResponse 200 if it represents a file on disk. HttpResponseRedirect 302 incase the metadata represents a url. HttpResponseNotFound 404 if the metadata file cannot be found.
- onadata.apps.api.tools.get_org_profile_cache_key(user, organization)¶
Return cache key given user and organization profile
- onadata.apps.api.tools.get_organization_members(organization)¶
Get members team user queryset
- onadata.apps.api.tools.get_organization_owners(organization)¶
Get owners team user queryset
- onadata.apps.api.tools.get_user_profile_or_none(username)¶
Returns a UserProfile instance if the user exists otherwise returns None.
- onadata.apps.api.tools.get_xform(formid, request, username=None)¶
Returns XForm instance if request.user has permissions to it otherwise it raises PermissionDenied() exception.
- onadata.apps.api.tools.get_xform_list_cache_key(user, xform_or_project)¶
Get the cache key for the XForm list by user’s role
- Parameters:
user – User making request
xform_or_project – XForm or Project being accessed
- Returns:
cache key based on role assigned to form/project
- onadata.apps.api.tools.invalidate_organization_cache(org_username)¶
Set organization cache to none for all roles
- onadata.apps.api.tools.invalidate_xform_list_cache(xform)¶
Invalidate the cache for the XForm list by user’s role
- Parameters:
xform – XForm instance
- Returns:
None
- onadata.apps.api.tools.publish_project_xform(request, project)¶
Publish XLSForm to a project given a request.
- onadata.apps.api.tools.publish_xlsform(request, owner, id_string=None, project=None)¶
Publishes XLSForm & creates an XFormVersion object given a request.
- onadata.apps.api.tools.remove_user_from_organization(organization, user)¶
Remove a user from an organization
Remove user from organization and all projects in the organization
- Parameters:
organization – OrganizationProfile instance
user – User instance
- Returns:
None
- onadata.apps.api.tools.remove_user_from_team(team, user)¶
Removes given user from the team and also removes team permissions from the user.
- onadata.apps.api.tools.replace_attachment_name_with_url(data, request)¶
Replaces the attachment filename with a URL in
dataobject.
- onadata.apps.api.tools.set_enketo_signed_cookies(resp, username=None, json_web_token=None)¶
Set signed cookies for JWT token in the HTTPResponse resp object.