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, AntiAbuse::AbuseReportLabelType, AppConfig::GitlabInstanceFeatureFlagType, AppConfig::InstanceMetadataType, AppConfig::KasType, AuditEvents::DefinitionType, 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::Components::InputType, Ci::Catalog::Resources::VersionType, Ci::CiCdSettingType, Ci::CodeQualityReportSummaryType, Ci::Config::ConfigType, Ci::Config::GroupType, Ci::Config::IncludeType, Ci::Config::JobRestrictionType, Ci::Config::JobType, Ci::Config::NeedType, Ci::Config::StageType, Ci::ConfigVariableType, Ci::DetailedStatusType, Ci::DurationStatisticsType, Ci::FreezePeriodType, Ci::GroupEnvironmentScopeType, Ci::GroupType, Ci::InheritedCiVariableType, Ci::InstanceVariableType, Ci::JobArtifactType, Ci::JobTokenAuthLogType, Ci::JobTokenScope::AllowlistEntryType, Ci::JobTokenScope::AllowlistType, Ci::JobTokenScope::JobTokenPolicyCategoryType, Ci::JobTokenScope::JobTokenPolicyType, Ci::JobTokenScopeType, Ci::JobTraceType, Ci::JobType, Ci::ManualVariableType, Ci::PipelineCountsType, 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, CommitType, ContainerExpirationPolicyType, ContainerRegistry::ContainerRepositoryReferrerType, ContainerRegistry::ContainerRepositoryTagType, ContainerRegistry::ContainerRepositoryType, ContainerRegistry::ContainerTagsExpirationPolicyType, ContainerRegistry::Protection::RuleType, 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::ModelLinksType, Ml::ModelType, Ml::ModelVersionLinksType, Ml::ModelVersionType, MutationType, NamespaceType, Namespaces::SidebarType, NestedEnvironmentType, Notes::AbuseReport::DiscussionType, Notes::AbuseReport::NoteType, 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::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, Repository::BlobType, RepositoryType, RootStorageStatisticsType, SavedReplyType, Security::CodequalityReportsComparer::DegradationType, Security::CodequalityReportsComparer::ReportType, Security::CodequalityReportsComparer::SummaryType, Security::CodequalityReportsComparerType, 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::NamespaceCommitEmailType, Wikis::WikiPageType, WorkItemStateCountsType, WorkItemType, WorkItems::ClosingMergeRequestType, WorkItems::DescriptionTemplateType, WorkItems::EmailParticipantType, WorkItems::LinkedItemType, WorkItems::RelatedBranchType, WorkItems::TypeType, WorkItems::WidgetDefinitions::AssigneesType, WorkItems::WidgetDefinitions::GenericType, WorkItems::WidgetDefinitions::HierarchyType, 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::HierarchyType, WorkItems::Widgets::LabelsType, WorkItems::Widgets::LinkedItemsType, WorkItems::Widgets::MilestoneType, WorkItems::Widgets::NotesType, WorkItems::Widgets::NotificationsType, WorkItems::Widgets::ParticipantsType, WorkItems::Widgets::StartAndDueDateType, 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
19
20
21
22
23
|
# File 'app/graphql/types/base_object.rb', line 19
def self.accepts(*types)
@accepts ||= []
@accepts += types
@accepts
end
|
.assignable?(object) ⇒ Boolean
49
50
51
52
53
54
55
|
# File 'app/graphql/types/base_object.rb', line 49
def self.assignable?(object)
assignable = accepts
return true if assignable.blank?
assignable.any? { |cls| object.is_a?(cls) }
end
|
.authorization_scopes ⇒ Object
30
31
32
|
# File 'app/graphql/types/base_object.rb', line 30
def self.authorization_scopes
[:api, :read_api]
end
|
.authorize(*args) ⇒ Object
12
13
14
15
16
17
|
# File 'app/graphql/types/base_object.rb', line 12
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
38
39
40
41
42
43
|
# File 'app/graphql/types/base_object.rb', line 38
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
45
46
47
|
# File 'app/graphql/types/base_object.rb', line 45
def current_user
context[:current_user]
end
|
#id ⇒ Object
All graphql fields exposing an id, should expose a global id.