Skip to content
Snippets Groups Projects
Select Git revision
  • 8afcb347749b77205329b172292a2416468567c1
  • main default protected
  • jw_sonar
  • v6.0.0 protected
  • bedran_exercise-list
  • ask-user-to-delete-exercises-on-duplicates
  • update-dependencies
  • jw_sonar_backup
  • add_route_assignments
  • 6.0.0-dev
  • 5.0.1
  • 5.0.0
  • 4.1.0
  • 4.0.0
  • 3.5.3
  • 3.5.2
  • 3.5.1
  • 3.5.0
  • 3.4.2
  • 3.4.1
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.3
  • 3.1.2
  • 3.1.1
  • 3.1.0
  • 3.0.1
  • 3.0.0
29 results

UserResultExtension.ts

Blame
  • UserResultExtension.ts 1.74 KiB
    import { Prisma, UserRole } from '@prisma/client';
    import LazyVal              from '../../../shared/helpers/LazyVal.js';
    import * as Gitlab          from '@gitbeaker/rest';
    import GitlabManager        from '../../../managers/GitlabManager.js';
    
    
    export default Prisma.defineExtension(client => {
        return client.$extends({
                                   result: {
                                       user: {
                                           isTeachingStaff: {
                                               needs: {
                                                   role: true
                                               },
                                               compute(user) {
                                                   return user.role === UserRole.TEACHING_STAFF || user.role === UserRole.ADMIN;
                                               }
                                           },
                                           isAdmin        : {
                                               needs: {
                                                   role: true
                                               },
                                               compute(user) {
                                                   return user.role === UserRole.ADMIN;
                                               }
                                           },
                                           gitlabProfile  : {
                                               compute(user) {
                                                   return new LazyVal<Gitlab.UserSchema | undefined>(() => GitlabManager.getUserById(user.id));
                                               }
                                           }
                                       }
                                   }
                               });
    });