aboutsummaryrefslogtreecommitdiffhomepage
path: root/main/app/sprinkles/admin
diff options
context:
space:
mode:
Diffstat (limited to 'main/app/sprinkles/admin')
-rw-r--r--main/app/sprinkles/admin/routes/search.php8
-rw-r--r--main/app/sprinkles/admin/routes/users.php2
-rw-r--r--main/app/sprinkles/admin/src/Controller/UserController.php55
-rw-r--r--main/app/sprinkles/admin/src/Controller/WormholeController.php5
4 files changed, 59 insertions, 11 deletions
diff --git a/main/app/sprinkles/admin/routes/search.php b/main/app/sprinkles/admin/routes/search.php
new file mode 100644
index 0000000..4dc1519
--- /dev/null
+++ b/main/app/sprinkles/admin/routes/search.php
@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * Routes for searching any kind of data we have
+ */
+$app->group('/search', function () {
+ $this->get('/user/{user_name}', 'UserFrosting\Sprinkle\Admin\Controller\UserController:pageInfo');
+})->add('authGuard');
diff --git a/main/app/sprinkles/admin/routes/users.php b/main/app/sprinkles/admin/routes/users.php
index 8a60d39..ddc1353 100644
--- a/main/app/sprinkles/admin/routes/users.php
+++ b/main/app/sprinkles/admin/routes/users.php
@@ -35,6 +35,8 @@ $app->group('/api/users', function () {
$this->get('/u/{user_name}/follows', 'UserFrosting\Sprinkle\Admin\Controller\UserController:getFollows'); // GET USERS WHICH THE USER FOLLOWS
+ $this->get('/u/{user_name}/friends', 'UserFrosting\Sprinkle\Admin\Controller\UserController:getFriends'); // GET USERS WHICH THE USER FOLLOWS AND WHICH ARE FOLLOWING THE USER
+
$this->get('/u/{user_name}/publickey', 'UserFrosting\Sprinkle\Admin\Controller\UserController:getPublicKey');
$this->post('', 'UserFrosting\Sprinkle\Admin\Controller\UserController:create');
diff --git a/main/app/sprinkles/admin/src/Controller/UserController.php b/main/app/sprinkles/admin/src/Controller/UserController.php
index 7ff191c..481d817 100644
--- a/main/app/sprinkles/admin/src/Controller/UserController.php
+++ b/main/app/sprinkles/admin/src/Controller/UserController.php
@@ -1042,12 +1042,6 @@ class UserController extends SimpleController
throw new NotFoundException($request, $response);
}
- $UsersFollowers = Capsule::table('user_follow')
- ->where('user_id', "=", $user->id)
- ->join("users", "users.id", "=", "user_follow.followed_by_id")
- ->select("user_follow.followed_by_id as id", "users.user_name as username")
- ->get();
-
/** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */
$authorizer = $this->ci->authorizer;
@@ -1061,6 +1055,12 @@ class UserController extends SimpleController
throw new ForbiddenException();
}
+ $UsersFollowers = Capsule::table('user_follow')
+ ->where('user_id', "=", $user->id)
+ ->join("users", "users.id", "=", "user_follow.followed_by_id")
+ ->select("user_follow.followed_by_id as id", "users.user_name as username")
+ ->get();
+
$result = $UsersFollowers->toArray();
return $response->withJson($result, 200, JSON_PRETTY_PRINT);
@@ -1078,12 +1078,42 @@ class UserController extends SimpleController
throw new NotFoundException($request, $response);
}
- $UsersFollowers = Capsule::table('user_follow')
+ /** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */
+ $authorizer = $this->ci->authorizer;
+
+ /** @var UserFrosting\Sprinkle\Account\Database\Models\User $currentUser */
+ $currentUser = $this->ci->currentUser;
+
+ // Access-controlled page
+ if (!$authorizer->checkAccess($currentUser, 'uri_user', [
+ 'user' => $user
+ ])) {
+ throw new ForbiddenException();
+ }
+
+ $UsersFollows = Capsule::table('user_follow')
->where('followed_by_id', "=", $user->id)
->join("users", "users.id", "=", "user_follow.user_id")
->select("user_follow.user_id as id", "users.user_name as username")
->get();
+ $result = $UsersFollows->toArray();
+
+ return $response->withJson($result, 200, JSON_PRETTY_PRINT);
+ }
+
+ /**
+ * Get users which the user follows and which are following the user
+ * Request type: GET
+ */
+ public function getFriends($request, $response, $args) {
+ $user = $this->getUserFromParams($args);
+
+ // If the user doesn't exist, return 404
+ if (!$user) {
+ throw new NotFoundException($request, $response);
+ }
+
/** @var UserFrosting\Sprinkle\Account\Authorize\AuthorizationManager $authorizer */
$authorizer = $this->ci->authorizer;
@@ -1097,7 +1127,16 @@ class UserController extends SimpleController
throw new ForbiddenException();
}
- $result = $UsersFollowers->toArray();
+
+ $UsersFriends = Capsule::table('user_follow')
+ //->select("user_follow.followed_by_id as id", "users.user_name as username")
+ ->where('user_follow.user_id', "=", $user->id)
+ ->orWhere('user_follow.followed_by_id', "=", $user->id)
+ ->join("user_follow", "user_follow.user_id", "=", "user_follow.followed_by_id")
+ //->join("users", "users.id", "=", "user_follow.followed_by_id")
+ ->get();
+
+ $result = $UsersFriends->toArray();
return $response->withJson($result, 200, JSON_PRETTY_PRINT);
}
diff --git a/main/app/sprinkles/admin/src/Controller/WormholeController.php b/main/app/sprinkles/admin/src/Controller/WormholeController.php
index 0040062..889c438 100644
--- a/main/app/sprinkles/admin/src/Controller/WormholeController.php
+++ b/main/app/sprinkles/admin/src/Controller/WormholeController.php
@@ -74,16 +74,15 @@ class WormholeController extends SimpleController
->where('user_id', $user->id)
->join("users", "users.id", "=", "user_follow.followed_by_id")
->select("user_follow.followed_by_id as id", "users.user_name as username")
- ->get(); // TODO: MULTI FOLLOWER ARRAY!
+ ->get();
$UsersFollows = DB::table('user_follow')
->where('followed_by_id', $user->id)
->join("users", "users.id", "=", "user_follow.user_id")
->select("user_follow.user_id as id", "users.user_name as username")
- ->get(); // TODO: MULTI FOLLOWER ARRAY!
+ ->get();
$result = $user->toArray();
- //print_r($user);
$result["avatar"] = $user->avatar;
$result["followers"] = $UsersFollower;
$result["follows"] = $UsersFollows;