Explorar el Código

refactor(core): Remove RequestContext.activeUser property

BREAKING CHANGE: The `RequestContext.activeUser` property has been removed. Instead use the `RequestContext.activeUserId` property and perform any needed lookup based on the id.
Michael Bromley hace 5 años
padre
commit
59dfaad7c7

+ 1 - 5
packages/core/src/api/common/request-context.service.ts

@@ -73,10 +73,6 @@ export class RequestContextService {
         );
     }
 
-    private isAuthenticatedSession(session?: Session): session is AuthenticatedSession {
-        return !!session && !!(session as AuthenticatedSession).user;
-    }
-
     private userHasRequiredPermissionsOnChannel(
         permissions: Permission[] = [],
         channel?: Channel,
@@ -86,7 +82,7 @@ export class RequestContextService {
             return false;
         }
         const permissionsOnChannel = user.roles
-            .filter(role => role.channels.find(c => idsAreEqual(c.id, channel.id)))
+            .filter((role) => role.channels.find((c) => idsAreEqual(c.id, channel.id)))
             .reduce((output, role) => [...output, ...role.permissions], [] as Permission[]);
         return this.arraysIntersect(permissions, permissionsOnChannel);
     }

+ 0 - 5
packages/core/src/api/common/request-context.spec.ts

@@ -100,10 +100,5 @@ describe('RequestContext', () => {
             const result = RequestContext.deserialize(ctxObject);
             expect(result.session).toEqual(original.session);
         });
-
-        it('activeUser', () => {
-            const result = RequestContext.deserialize(ctxObject);
-            expect(result.activeUser).toEqual(original.activeUser);
-        });
     });
 });

+ 1 - 8
packages/core/src/api/common/request-context.ts

@@ -112,16 +112,9 @@ export class RequestContext {
     }
 
     get activeUserId(): ID | undefined {
-        const user = this.activeUser;
-        if (user) {
-            return user.id;
-        }
-    }
-
-    get activeUser(): User | undefined {
         if (this.session) {
             if (this.isAuthenticatedSession(this.session)) {
-                return this.session.user;
+                return this.session.user.id;
             }
         }
     }

+ 3 - 18
packages/core/src/api/resolvers/shop/shop-customer.resolver.ts

@@ -22,24 +22,9 @@ export class ShopCustomerResolver {
     @Query()
     @Allow(Permission.Owner)
     async activeCustomer(@Ctx() ctx: RequestContext): Promise<Customer | undefined> {
-        const user = ctx.activeUser;
-        if (user) {
-            const customer = await this.customerService.findOneByUserId(user.id);
-            if (customer) {
-                return customer;
-            }
-            // the user is not a Customer, so it must
-            // be an administrator. In this case we need to return
-            // a "dummy" Customer for the admin user.
-            return new Customer({
-                id: user.id,
-                createdAt: user.createdAt,
-                updatedAt: user.updatedAt,
-                firstName: '[admin]',
-                lastName: user.identifier,
-                emailAddress: 'admin@vendure.io',
-                addresses: [],
-            });
+        const userId = ctx.activeUserId;
+        if (userId) {
+            return this.customerService.findOneByUserId(userId);
         }
     }