diff --git a/src/middlewares/example.ts b/src/middlewares/example.ts
index 0b4aabb1f1017c2ddc6297240733f01045b0080a..4b6394117ecdfaba4106aa7fc984ee6d3b676638 100644
--- a/src/middlewares/example.ts
+++ b/src/middlewares/example.ts
@@ -1,6 +1,7 @@
 import { NextFunction, Request, Response, response } from "express";
 
 const example = () => (req: Request, res: Response) => {
+  console.log(res.data.value);
   res.status(200).json({ message: "Example" });
 };
 
diff --git a/src/middlewares/utils/getFieldValue.ts b/src/middlewares/utils/getFieldValue.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d3ffad5854c539d49367f44f753bb1bb009a8c38
--- /dev/null
+++ b/src/middlewares/utils/getFieldValue.ts
@@ -0,0 +1,25 @@
+import { NextFunction, Request, Response } from "express";
+
+import Profile from "../../models/ProfileSchema";
+import Term from "../../models/TermSchema";
+
+/**
+ * set res.data.value to res.data[objectName][fieldName]
+ */
+const getFieldValue = (
+  objectName: "profile" | "term",
+  fieldName: "picture" | "acceptedPicture" | "backgroundFile"
+) => async (req: Request, res: Response, next: NextFunction) => {
+  try {
+    const object: Record<string, any> = res.data[objectName]!;
+    if (object) {
+      res.data.value = object[fieldName];
+    }
+
+    next();
+  } catch (err) {
+    next(err);
+  }
+};
+
+export default getFieldValue;
diff --git a/src/routes/files.ts b/src/routes/files.ts
index 5b769a2e31b72c5aff00829d29d02f3a94496f20..fe7fd3a9801197d49764529b679eda1c95c6efd9 100644
--- a/src/routes/files.ts
+++ b/src/routes/files.ts
@@ -2,6 +2,11 @@ import { Application } from "express";
 import cardImageStorage from "../middlewares/files/card/cardImageStorage";
 import example from "../middlewares/example";
 import { fileFilter } from "../middlewares/files/fileFilter";
+import getFieldValue from "../middlewares/utils/getFieldValue";
+import getUser from "../middlewares/user/getUser";
+import isLoggedIn from "../middlewares/auth/isLoggedIn";
+import isRegistered from "../middlewares/auth/isRegistered";
+import isStaffOrAdmin from "../middlewares/auth/isStaffOrAdmin";
 import multer from "multer";
 import profilePictureStorage from "../middlewares/files/profile/profilePictureStorage";
 
@@ -17,7 +22,14 @@ const CardImageUpload = multer({
 
 const filesRoute = (prefix: string, app: Application): void => {
   // Get a users profile picture
-  app.get(`${prefix}/user/:userId/picture`, example());
+  app.get(
+    `${prefix}/user/:userId/picture`,
+    isRegistered(),
+    isStaffOrAdmin(),
+    getUser(),
+    getFieldValue("profile", "picture"),
+    example()
+  );
   // Get a users accepted picture
   app.get(`${prefix}/user/:userId/picture/accepted`, example());
   // Get own picture
diff --git a/src/utils/declarations/response.d.ts b/src/utils/declarations/response.d.ts
index 2dbecbab94126cbb24522971d56776c616089c82..878f90fe2a223b2fd6c3d7c9fdfb525877c4f513 100644
--- a/src/utils/declarations/response.d.ts
+++ b/src/utils/declarations/response.d.ts
@@ -2,6 +2,7 @@ import { INews } from "../../models/NewsSchema";
 import { IProfile } from "../../models/ProfileSchema";
 import { IFile } from "../../models/FileSchema";
 import { IWarning } from "../../models/WarningSchema";
+import { ITerm } from "../../models/TermSchema";
 
 declare global {
   namespace Express {
@@ -10,7 +11,8 @@ declare global {
         profile?: Partial<IProfile> | null;
         warnings?: Partial<IWarning>[] | null;
         newObjectId?: string | null;
-
+        value?: string | null;
+        term?: Partial<ITerm> | null;
         news?: Partial<INews>[] | null;
         newsObject?: Partial<INews> | null;
         profiles?: Partial<IProfile>[] | null;