Class: Types::BaseObject
Direct Known Subclasses
AbuseReportType, AccessLevelType, AccessLevels::DeployKeyType, AccessLevels::UserType, Achievements::AchievementType, Achievements::UserAchievementType, Admin::Analytics::UsageTrends::MeasurementType, Admin::SidekiqQueues::DeleteJobsResponseType, AlertManagement::AlertStatusCountsType, AlertManagement::AlertType, AlertManagement::HttpIntegrationType, AlertManagement::PrometheusIntegrationType, Analytics::CycleAnalytics::LinkType, Analytics::CycleAnalytics::MetricType, Analytics::CycleAnalytics::ValueStreamType, Analytics::CycleAnalytics::ValueStreams::StageItemsType, Analytics::CycleAnalytics::ValueStreams::StageMetricsType, Analytics::CycleAnalytics::ValueStreams::StageType, AppConfig::GitlabInstanceFeatureFlagType, AppConfig::InstanceMetadataType, AppConfig::KasType, AuditEvents::AuditEventType, AuditEvents::DefinitionType, Authz::AccessTokens::GranularScopeType, Authz::AccessTokens::LegacyScopeType, Authz::AccessTokens::PermissionType, Authz::PersonalAccessTokens::PersonalAccessTokenType, AwardEmojis::AwardEmojiType, Types::Blame::BlameType, Types::Blame::CommitDataType, Types::Blame::GroupsType, BlobViewerType, BoardListType, BoardType, Types::BranchProtections::BaseAccessLevelType, Types::BranchRules::BranchProtectionType, BranchType, Ci::AnalyticsPeriodType, Ci::AnalyticsType, Ci::ApplicationSettingType, Ci::BuildNeedType, Ci::Catalog::ResourceType, Ci::Catalog::Resources::ComponentType, Ci::Catalog::Resources::VersionType, Ci::CiCdSettingType, Ci::CodeQualityReportSummaryType, Ci::Config::GroupType, Ci::Config::IncludeType, Ci::Config::JobRestrictionType, Ci::Config::JobType, Ci::Config::NeedType, Ci::Config::StageType, Ci::ConfigType, Ci::ConfigVariableType, Ci::DetailedStatusType, Ci::DurationStatisticsType, Ci::FreezePeriodType, Ci::GroupEnvironmentScopeType, Ci::GroupType, Ci::InheritedCiVariableType, Ci::Inputs::ConditionType, Ci::Inputs::FieldType, Ci::Inputs::RuleType, Ci::Inputs::SpecType, Ci::InstanceVariableType, Ci::JobAnalyticsStatisticsType, Ci::JobAnalyticsType, Ci::JobArtifactType, Ci::JobTokenAccessibleGroupType, Ci::JobTokenAccessibleProjectType, Ci::JobTokenAuthLogType, Ci::JobTokenScope::AllowlistEntryType, Ci::JobTokenScope::AllowlistType, Ci::JobTokenScopeType, Ci::JobTraceType, Ci::JobType, Ci::ManualVariableType, Ci::NamespaceSettingsType, Ci::PipelineCountsType, Ci::PipelineCreation::RequestType, Ci::PipelineManualVariableType, Ci::PipelineMessageType, Ci::PipelineScheduleType, Ci::PipelineScheduleVariableType, Ci::PipelineTriggerType, Ci::PipelineType, Ci::ProjectVariableType, Ci::RecentFailuresType, Ci::RunnerArchitectureType, Ci::RunnerManagerType, Ci::RunnerPlatformType, Ci::RunnerSetupType, Ci::RunnerType, Ci::StageType, Ci::StatusActionType, Ci::TemplateType, Ci::TestCaseType, Ci::TestReportSummaryType, Ci::TestReportTotalType, Ci::TestSuiteSummaryType, Ci::TestSuiteType, CiConfiguration::Sast::AnalyzersEntityType, CiConfiguration::Sast::EntityType, CiConfiguration::Sast::OptionsEntityType, CiConfiguration::Sast::Type, Clusters::AgentActivityEventType, Clusters::AgentTokenType, Clusters::AgentType, Clusters::Agents::Authorizations::CiAccessType, Clusters::Agents::Authorizations::UserAccessType, CommitReferencesType, CommitSignatures::GpgSignatureType, CommitSignatures::SshSignatureType, CommitSignatures::X509SignatureType, ContainerExpirationPolicyType, ContainerRegistry::ContainerRepositoryReferrerType, ContainerRegistry::ContainerRepositoryTagType, ContainerRegistry::ContainerRepositoryType, ContainerRegistry::ContainerTagsExpirationPolicyType, ContainerRegistry::Protection::AccessLevelType, ContainerRegistry::Protection::RuleType, ContainerRegistry::Protection::TagRuleType, CustomAttributeType, CustomEmojiType, CustomerRelations::ContactStateCountsType, CustomerRelations::ContactType, CustomerRelations::OrganizationStateCountsType, CustomerRelations::OrganizationType, DataTransfer::BaseType, DataTransfer::EgressNodeType, DeploymentTagType, DeploymentType, DescriptionVersionType, DesignManagement::DesignAtVersionType, DesignManagement::DesignCollectionType, DesignManagement::DesignType, DesignManagement::VersionType, DesignManagementType, DiffRefsType, DiffStatsSummaryType, DiffStatsType, DiffType, EnvironmentType, ErrorTracking::SentryDetailedErrorType, ErrorTracking::SentryErrorCollectionType, ErrorTracking::SentryErrorFrequencyType, ErrorTracking::SentryErrorStackTraceContextType, ErrorTracking::SentryErrorStackTraceEntryType, ErrorTracking::SentryErrorStackTraceType, ErrorTracking::SentryErrorTagsType, ErrorTracking::SentryErrorType, EventType, EvidenceType, GrafanaIntegrationType, GroupInvitationType, GroupMemberType, IdeType, Import::SourceUserType, IncidentManagement::TimelineEventTagType, IncidentManagement::TimelineEventType, Integrations::ExclusionType, IssueStatusCountsType, IssueType, JiraImportType, JiraUserType, Kas::AgentConfigurationType, Kas::AgentConnectionType, Kas::AgentMetadataType, Kas::AgentVersionWarningType, Kas::AgentWarningType, KeyType, LabelType, MergeRequestType, MergeRequests::MergeabilityCheckType, Metrics::Dashboards::AnnotationType, MilestoneStatsType, MilestoneType, Ml::CandidateLinksType, Ml::CandidateMetadataType, Ml::CandidateMetricType, Ml::CandidateParamType, Ml::CandidateType, Ml::ExperimentType, Ml::ModelLinksType, Ml::ModelType, Ml::ModelVersionLinksType, Ml::ModelVersionType, MutationType, NamespaceType, Namespaces::AvailableFeaturesType, Namespaces::LinkPaths::CommentTemplateType, Namespaces::LinkPaths::GroupNamespaceLinksType, Namespaces::LinkPaths::ProjectNamespaceLinksType, Namespaces::LinkPaths::UserNamespaceLinksType, Namespaces::MarkdownPaths::GroupNamespaceMarkdownPathsType, Namespaces::MarkdownPaths::ProjectNamespaceMarkdownPathsType, Namespaces::MarkdownPaths::UserNamespaceMarkdownPathsType, Namespaces::Metadata::GroupNamespaceMetadataType, Namespaces::Metadata::ProjectNamespaceMetadataType, Namespaces::Metadata::UserNamespaceMetadataType, Namespaces::NamespaceSettingsType, Namespaces::ProjectStatisticsType, Namespaces::SidebarType, NestedEnvironmentType, Notes::DeletedNoteType, Notes::DiffPositionType, Notes::DiscussionType, Notes::NoteType, Notes::QuickActionsStatusType, Notes::SystemNoteMetadataType, Organizations::OrganizationType, Organizations::OrganizationUserAccessLevelType, Organizations::OrganizationUserBadgeType, Organizations::OrganizationUserType, Packages::Cleanup::PolicyType, Packages::Composer::JsonType, Packages::Composer::MetadatumType, Packages::Conan::FileMetadatumType, Packages::Conan::MetadatumType, Packages::Helm::DependencyType, Packages::Helm::FileMetadatumType, Packages::Helm::MaintainerType, Packages::Helm::MetadataType, Packages::Maven::MetadatumType, Packages::Nuget::DependencyLinkMetadatumType, Packages::Nuget::MetadatumType, Packages::PackageBaseType, Packages::PackageDependencyLinkType, Packages::PackageDependencyType, Packages::PackageFileType, Packages::PackageLinksType, Packages::PackageTagType, Packages::Protection::RuleType, Packages::Pypi::MetadatumType, Packages::TerraformModule::Metadatum::DependenciesType, Packages::TerraformModule::Metadatum::DependencyType, Packages::TerraformModule::Metadatum::ExampleType, Packages::TerraformModule::Metadatum::FieldsType, Packages::TerraformModule::Metadatum::InputType, Packages::TerraformModule::Metadatum::OutputType, Packages::TerraformModule::Metadatum::RootType, Packages::TerraformModule::Metadatum::SubmoduleType, Packages::TerraformModule::MetadatumType, PagesDeploymentType, PermissionTypes::BasePermissionType, ProjectFeatureAccessLevelType, ProjectInvitationType, ProjectMemberType, ProjectPlanLimitsType, ProjectStatisticsRedirectType, ProjectStatisticsType, ProjectType, Projects::BranchRuleType, Projects::BranchRules::SquashOptionType, Projects::CommitParentNamesType, Projects::DetailedImportStatusType, Projects::ForkDetailsType, Projects::RepositoryLanguageType, Projects::Services::BaseServiceType, Projects::Services::JiraProjectType, Projects::Services::JiraServiceType, Projects::TopicType, PrometheusAlertType, QueryComplexityType, QueryType, ReleaseAssetLinkType, ReleaseAssetsType, ReleaseLinksType, ReleaseSourceType, ReleaseType, Repositories::CommitType, Repositories::TagType, Repository::BlobType, RepositoryType, RootStorageStatisticsType, SavedReplyType, Security::CodequalityReportsComparer::DegradationType, Security::CodequalityReportsComparer::ReportType, Security::CodequalityReportsComparer::SummaryType, Security::CodequalityReportsComparerType, Security::ConfigurationType, Security::FeatureType, Security::ScanFeatureType, Security::SecondaryFeatureType, SnippetType, Snippets::BlobType, SubscriptionType, TaskCompletionStatus, Terraform::StateType, Terraform::StateVersionType, TimeTracking::TimelogCategoryType, TimelogType, TodoType, Tree::BlobType, Tree::SubmoduleType, Tree::TreeEntryType, Tree::TreeType, UploadType, UserCalloutType, UserMergeRequestInteractionType, UserPreferencesType, UserStatusType, UserType, Users::EmailType, Users::GroupCalloutType, Users::NamespaceCommitEmailType, Users::RecentlyViewedItemType, WebHooks::CustomHeaderType, WebHooks::EventHeaderType, WebHooks::EventType, WebHooks::ProjectHookType, WebHooks::UrlVariableType, Wikis::WikiPageType, WorkItemStateCountsType, WorkItemType, WorkItems::ClosingMergeRequestType, WorkItems::CommentTemplatePathType, WorkItems::DescriptionTemplateType, WorkItems::EmailParticipantType, WorkItems::FeaturesType, WorkItems::LinkedItemType, WorkItems::LinkedResourceType, WorkItems::RelatedBranchType, WorkItems::SavedViews::FilterWarningType, WorkItems::SavedViews::SavedViewType, WorkItems::TypeType, WorkItems::UserPreference, WorkItems::WidgetDefinitions::AssigneesType, WorkItems::WidgetDefinitions::GenericType, WorkItems::WidgetDefinitions::HierarchyType, WorkItems::WidgetDefinitions::StartAndDueDateType, WorkItems::Widgets::AssigneesType, WorkItems::Widgets::AwardEmojiType, WorkItems::Widgets::CrmContactsType, WorkItems::Widgets::CurrentUserTodosType, WorkItems::Widgets::DescriptionType, WorkItems::Widgets::DesignsType, WorkItems::Widgets::DevelopmentType, WorkItems::Widgets::EmailParticipantsType, WorkItems::Widgets::ErrorTracking::StackTraceContextType, WorkItems::Widgets::ErrorTracking::StackTraceType, WorkItems::Widgets::ErrorTrackingType, WorkItems::Widgets::HierarchyType, WorkItems::Widgets::LabelsType, WorkItems::Widgets::LinkedItemsType, WorkItems::Widgets::LinkedResourcesType, WorkItems::Widgets::MilestoneType, WorkItems::Widgets::NotesType, WorkItems::Widgets::NotificationsType, WorkItems::Widgets::ParticipantsType, WorkItems::Widgets::StartAndDueDateType, WorkItems::Widgets::TimeTracking::HumanReadableAttributesType, WorkItems::Widgets::TimeTracking::TimeTrackingType, WorkItems::Widgets::TimeTracking::TimelogType, WorkItems::WorkItemTypeCountsByStateType, WorkItems::WorkItemTypeDepthLimitReachedByType, X509CertificateType, X509IssuerType
Class Method Summary
collapse
Instance Method Summary
collapse
#present, #unpresented
Class Method Details
.accepts(*types) ⇒ Object
22
23
24
25
26
|
# File 'app/graphql/types/base_object.rb', line 22
def self.accepts(*types)
@accepts ||= []
@accepts += types
@accepts
end
|
.assignable?(object) ⇒ Boolean
52
53
54
55
56
57
58
|
# File 'app/graphql/types/base_object.rb', line 52
def self.assignable?(object)
assignable = accepts
return true if assignable.blank?
assignable.any? { |cls| object.is_a?(cls) }
end
|
.authorization_scopes ⇒ Object
33
34
35
|
# File 'app/graphql/types/base_object.rb', line 33
def self.authorization_scopes
[:api, :read_api]
end
|
.authorize(*args) ⇒ Object
15
16
17
18
19
20
|
# File 'app/graphql/types/base_object.rb', line 15
def self.authorize(*args)
raise 'Cannot redefine authorize' if @authorize_args && args.any?
@authorize_args = args.freeze if args.any?
@authorize_args || (superclass.respond_to?(:authorize) ? superclass.authorize : nil)
end
|
.authorized?(object, context) ⇒ Boolean
41
42
43
44
45
46
|
# File 'app/graphql/types/base_object.rb', line 41
def self.authorized?(object, context)
authorization.ok?(object, context[:current_user],
scope_validator: context[:scope_validator],
skip_abilities: context[:skip_type_authorization]
)
end
|
Instance Method Details
#current_user ⇒ Object
48
49
50
|
# File 'app/graphql/types/base_object.rb', line 48
def current_user
context[:current_user]
end
|
#id ⇒ Object
All graphql fields exposing an id, should expose a global id.