Advertisement
Guest User

Untitled

a guest
Jun 25th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. import { Schema, VirtualSchema, Types, config } from 'radiance';
  2.  
  3. Radiance({
  4. schema: {
  5. session: SESSION
  6. },
  7. acl: {
  8. isAdmin: u => u.id === 1,
  9. isSelf: (u, args) => u.id === args.id
  10. }
  11. })
  12.  
  13.  
  14. const projectSchema = Schema('project', {
  15. name: Types.string()
  16. });
  17.  
  18. const messageSchema = Schema('message', {
  19. text: Types.string(),
  20. [config]: {
  21. update: ['isAdmin', 'isSelf'],
  22. delete: false
  23. }
  24. });
  25.  
  26. const userSchema = Schema('user', {
  27. firs_name: Types.string(),
  28. last_name: Types.string(10),
  29. nickname: Types.string(),
  30. password: Types.string().required().hidden(), // не будет в json
  31. permission: Types.number(5).required(),
  32. projects: [projectSchema], // many to many
  33. messages: messageSchema,
  34. [config]: {
  35. beforeUpdate: ({ args, res }) => {
  36. if (args.permission && !this.isAdmin) return false;
  37.  
  38. return args;
  39. },
  40. delete: ['isAdmin', 'isSelf']
  41. }
  42. });
  43.  
  44. const auth = VirtualSchema('auth', {
  45. login: Types.string,
  46. pass: Types.string,
  47. [config]: {
  48. resolve: ({ args, context, res })=> {
  49. const user = userSchema.find(args);
  50. if (user) {
  51. res.session.user = user;
  52. }
  53. return user;
  54. }
  55. }
  56. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement