diff --git a/frontend/src/components/Admin/ManageUsers/TheSignUpTable.vue b/frontend/src/components/Admin/ManageUsers/TheSignUpTable.vue
index 0ef53c49d..77abffc93 100644
--- a/frontend/src/components/Admin/ManageUsers/TheSignUpTable.vue
+++ b/frontend/src/components/Admin/ManageUsers/TheSignUpTable.vue
@@ -39,12 +39,19 @@
-
+
+
+
+
@@ -77,6 +84,14 @@
+
+
+
+ mdi-account-cog
+
+ {{ item.admin ? "Yes" : "No" }}
+
+
@@ -110,18 +125,21 @@ export default {
},
{ text: "Name", value: "name" },
{ text: "Token", value: "token" },
+ { text: "Admin", value: "admin", align: "center" },
{ text: "", value: "actions", sortable: false, align: "center" },
],
links: [],
editedIndex: -1,
editedItem: {
name: "",
+ admin: false,
token: "",
id: 0,
},
defaultItem: {
name: "",
token: "",
+ admin: false,
id: 0,
},
}),
@@ -205,7 +223,10 @@ export default {
api.links.update(this.editedItem);
this.close();
} else if (this.$refs.newUser.validate()) {
- api.signUps.createToken({ name: this.editedItem.name });
+ api.signUps.createToken({
+ name: this.editedItem.name,
+ admin: this.editedItem.admin,
+ });
this.close();
}
await this.initialize();
diff --git a/mealie/db/models/sign_up.py b/mealie/db/models/sign_up.py
index 11abd09f9..2a7a8d251 100644
--- a/mealie/db/models/sign_up.py
+++ b/mealie/db/models/sign_up.py
@@ -1,5 +1,5 @@
from db.models.model_base import BaseMixins, SqlAlchemyBase
-from sqlalchemy import Column, Integer, String
+from sqlalchemy import Column, Integer, String, Boolean
class SignUp(SqlAlchemyBase, BaseMixins):
@@ -7,19 +7,23 @@ class SignUp(SqlAlchemyBase, BaseMixins):
id = Column(Integer, primary_key=True)
token = Column(String, nullable=False, index=True)
name = Column(String, index=True)
+ admin = Column(Boolean, default=False)
def __init__(
self,
session,
token,
name,
+ admin,
) -> None:
self.token = token
self.name = name
+ self.admin = admin
def dict(self):
return {
"id": self.id,
"name": self.name,
"token": self.token,
+ "admin": self.admin
}
diff --git a/mealie/routes/users/sign_up.py b/mealie/routes/users/sign_up.py
index ade9b32c1..537fd44b9 100644
--- a/mealie/routes/users/sign_up.py
+++ b/mealie/routes/users/sign_up.py
@@ -34,7 +34,11 @@ async def create_user_sign_up_key(
""" Generates a Random Token that a new user can sign up with """
if current_user.admin:
- sign_up = {"token": str(uuid.uuid1().hex), "name": key_data.name}
+ sign_up = {
+ "token": str(uuid.uuid1().hex),
+ "name": key_data.name,
+ "admin": key_data.admin,
+ }
db_entry = db.sign_ups.create(session, sign_up)
return db_entry
@@ -57,6 +61,7 @@ async def create_user_with_token(
return {"details": "invalid token"}
# Create User
+ new_user.admin = db_entry.get("admin")
new_user.password = get_password_hash(new_user.password)
data = db.users.create(session, new_user.dict())
diff --git a/mealie/schema/sign_up.py b/mealie/schema/sign_up.py
index 4c1087f18..9c21c2314 100644
--- a/mealie/schema/sign_up.py
+++ b/mealie/schema/sign_up.py
@@ -3,6 +3,7 @@ from fastapi_camelcase import CamelModel
class SignUpIn(CamelModel):
name: str
+ admin: bool
class SignUpToken(SignUpIn):