Basic Auth Context
This commit is contained in:
@@ -4,7 +4,7 @@ scalar Time
|
||||
scalar Upload
|
||||
|
||||
# https://gqlgen.com/reference/directives/
|
||||
directive @hasRole(role: Role!) on FIELD_DEFINITION
|
||||
directive @hasMinRole(role: Role!) on FIELD_DEFINITION
|
||||
|
||||
directive @meta(
|
||||
gorm: String,
|
||||
@@ -31,6 +31,20 @@ enum AuthType {
|
||||
LDAP
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# ---------------------- Authentication ----------------------
|
||||
# ------------------------------------------------------------
|
||||
|
||||
enum AuthResult {
|
||||
Success
|
||||
Failure
|
||||
}
|
||||
|
||||
type AuthResponse {
|
||||
Result: AuthResult!
|
||||
Error: String
|
||||
}
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# ----------------------- Type Filters -----------------------
|
||||
# ------------------------------------------------------------
|
||||
@@ -312,45 +326,54 @@ type AlbumResponse {
|
||||
# ------------------------------------------------------------
|
||||
|
||||
type Query {
|
||||
|
||||
# Authentication
|
||||
login(
|
||||
user: String!
|
||||
password: String!
|
||||
): AuthResult!
|
||||
logout: AuthResult! @hasMinRole(role: User)
|
||||
|
||||
# Single Item
|
||||
mediaItem(id: ID!): MediaItem! @hasRole(role: User)
|
||||
device(id: ID!): Device! @hasRole(role: User)
|
||||
album(id: ID!): Album! @hasRole(role: User)
|
||||
tag(id: ID!): Tag! @hasRole(role: User)
|
||||
user(id: ID!): User! @hasRole(role: Admin)
|
||||
mediaItem(id: ID!): MediaItem! @hasMinRole(role: User)
|
||||
device(id: ID!): Device! @hasMinRole(role: User)
|
||||
album(id: ID!): Album! @hasMinRole(role: User)
|
||||
user(id: ID!): User! @hasMinRole(role: Admin)
|
||||
tag(id: ID!): Tag! @hasMinRole(role: User)
|
||||
me: User! @hasMinRole(role: User)
|
||||
|
||||
# All
|
||||
mediaItems(
|
||||
filter: MediaItemFilter
|
||||
count: Int
|
||||
page: Int
|
||||
): MediaItemResponse! @hasRole(role: User)
|
||||
): MediaItemResponse! @hasMinRole(role: User)
|
||||
devices(
|
||||
filter: DeviceFilter
|
||||
count: Int
|
||||
page: Int
|
||||
): DeviceResponse! @hasRole(role: User)
|
||||
): DeviceResponse! @hasMinRole(role: User)
|
||||
albums(
|
||||
filter: AlbumFilter
|
||||
count: Int
|
||||
page: Int
|
||||
): AlbumResponse! @hasRole(role: User)
|
||||
): AlbumResponse! @hasMinRole(role: User)
|
||||
tags(
|
||||
filter: TagFilter
|
||||
count: Int
|
||||
page: Int
|
||||
): TagResponse! @hasRole(role: User)
|
||||
): TagResponse! @hasMinRole(role: User)
|
||||
users(
|
||||
filter: UserFilter
|
||||
count: Int
|
||||
page: Int
|
||||
): UserResponse! @hasRole(role: Admin)
|
||||
): UserResponse! @hasMinRole(role: Admin)
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
createMediaItem(input: NewMediaItem!): MediaItem! @hasRole(role: User)
|
||||
createDevice(input: NewDevice!): Device! @hasRole(role: User)
|
||||
createAlbum(input: NewAlbum!): Album! @hasRole(role: User)
|
||||
createTag(input: NewTag!): Tag! @hasRole(role: User)
|
||||
createUser(input: NewUser!): User! @hasRole(role: Admin)
|
||||
createMediaItem(input: NewMediaItem!): MediaItem! @hasMinRole(role: User)
|
||||
createDevice(input: NewDevice!): Device! @hasMinRole(role: User)
|
||||
createAlbum(input: NewAlbum!): Album! @hasMinRole(role: User)
|
||||
createTag(input: NewTag!): Tag! @hasMinRole(role: User)
|
||||
createUser(input: NewUser!): User! @hasMinRole(role: Admin)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user