a3e044dec5
Improved some strings, added the basics to prepare for integrating schedules again, and added basic Forgejo CI.
116 lines
3.4 KiB
Go
Executable file
116 lines
3.4 KiB
Go
Executable file
package permissions
|
|
|
|
import (
|
|
"git.zervo.org/scheduletogether/backend/pkg/types"
|
|
)
|
|
|
|
const (
|
|
SignOut types.PermissionKey = iota
|
|
GetAllUsers
|
|
GetUserById
|
|
GetUserByUuid
|
|
GetOwnUser
|
|
DeleteUserById
|
|
DeleteOwnUser
|
|
UpdateUserById
|
|
UpdateOwnUser
|
|
SendFriendRequest
|
|
AcceptFriendRequest
|
|
GetOwnFriendRequests
|
|
GetFriendRequestsById
|
|
OverrideInteractionPreferences
|
|
CreateSchedule
|
|
)
|
|
|
|
var Permissions = map[types.PermissionKey]types.Permission{
|
|
SignOut: {
|
|
Key: "sign_out",
|
|
Name: "Sign Out",
|
|
Description: "Allows user to manually sign out",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
GetAllUsers: {
|
|
Key: "get_all_users",
|
|
Name: "Get All Users",
|
|
Description: "Allows retrieving all instance users",
|
|
Roles: []string{"admin"},
|
|
},
|
|
GetUserById: {
|
|
Key: "get_user_by_id",
|
|
Name: "Get User By ID",
|
|
Description: "Allows retrieving specific user by ID",
|
|
Roles: []string{"admin"},
|
|
},
|
|
GetUserByUuid: {
|
|
Key: "get_user_by_uuid",
|
|
Name: "Get User By UUID",
|
|
Description: "Allows retrieving simple specific user data by UUID",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
GetOwnUser: {
|
|
Key: "get_own_user",
|
|
Name: "Get Own User",
|
|
Description: "Allows retrieving own user by payload data",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
DeleteUserById: {
|
|
Key: "delete_user_by_id",
|
|
Name: "Delete User By ID",
|
|
Description: "Allows deleting specific user by ID",
|
|
Roles: []string{"admin"},
|
|
},
|
|
DeleteOwnUser: {
|
|
Key: "delete_own_user",
|
|
Name: "Delete Own User",
|
|
Description: "Allows deleting own user by payload data",
|
|
Roles: []string{"user", "member"},
|
|
},
|
|
UpdateUserById: {
|
|
Key: "update_user_by_id",
|
|
Name: "Update User By ID",
|
|
Description: "Allows updating specific user by ID",
|
|
Roles: []string{"admin"},
|
|
},
|
|
UpdateOwnUser: {
|
|
Key: "update_own_user",
|
|
Name: "Update Own User",
|
|
Description: "Allows updating own user by payload data",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
SendFriendRequest: {
|
|
Key: "send_friend_request",
|
|
Name: "Send Friend Request",
|
|
Description: "Allows user to send friend requests",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
AcceptFriendRequest: {
|
|
Key: "accept_friend_request",
|
|
Name: "Accept Friend Request",
|
|
Description: "Allows user to accept incoming friend requests",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
GetOwnFriendRequests: {
|
|
Key: "get_own_friend_requests",
|
|
Name: "Get Own Friend Requests",
|
|
Description: "Allows user to list their incoming friend requests",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
GetFriendRequestsById: {
|
|
Key: "get_friend_requests_by_id",
|
|
Name: "Get Friend Requests By ID",
|
|
Description: "Allows user to list others incoming friend requests",
|
|
Roles: []string{"admin"},
|
|
},
|
|
OverrideInteractionPreferences: {
|
|
Key: "override_interaction_preferences",
|
|
Name: "Override Interaction Preferences",
|
|
Description: "Allows user to interact with other users no matter their interaction preferences",
|
|
Roles: []string{"admin"},
|
|
},
|
|
CreateSchedule: {
|
|
Key: "create_schedule",
|
|
Name: "Create Schedule",
|
|
Description: "Allows user to create a schedule on their account",
|
|
Roles: []string{"admin", "user", "member"},
|
|
},
|
|
}
|