Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Schema, VirtualSchema, Types, config } from 'radiance';
- Radiance({
- schema: {
- session: SESSION
- },
- acl: {
- isAdmin: u => u.id === 1,
- isSelf: (u, args) => u.id === args.id
- }
- })
- const projectSchema = Schema('project', {
- name: Types.string()
- });
- const messageSchema = Schema('message', {
- text: Types.string(),
- [config]: {
- update: ['isAdmin', 'isSelf'],
- delete: false
- }
- });
- const userSchema = Schema('user', {
- firs_name: Types.string(),
- last_name: Types.string(10),
- nickname: Types.string(),
- password: Types.string().required().hidden(), // не будет в json
- permission: Types.number(5).required(),
- projects: [projectSchema], // many to many
- messages: messageSchema,
- [config]: {
- beforeUpdate: ({ args, res }) => {
- if (args.permission && !this.isAdmin) return false;
- return args;
- },
- delete: ['isAdmin', 'isSelf']
- }
- });
- const auth = VirtualSchema('auth', {
- login: Types.string,
- pass: Types.string,
- [config]: {
- resolve: ({ args, context, res })=> {
- const user = userSchema.find(args);
- if (user) {
- res.session.user = user;
- }
- return user;
- }
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement