Manuales de desarrollo de YeboYebo
login
en nuestro proyecto, por lo que decidimos si la incluirá nuestro proyecto o la extensión en concreto.import login from '@quimera-core/extensions/login'
export default {
path: ...,
dependencies: [
core,
login
],
}
rules
en el index.ts de nuestra extensión
export default {
path: ...,
dependencies: [...],
rules: {
}
}
'_ViewName_:visit'
. El valor de esta propiedad determinará si es posible acceder a esta View.
export default {
path: ...,
dependencies: [...],
rules: {
'ListaRecibosCliente:visit': false,
}
}
Esto haría que nadie (salvo el superusuario) pueda entrar a la View ListaRecibosCliente
. En proximas secciones veremos que valores puede recibir esta propiedad.
rules
en el index.ts de nuestra extensión
export default {
path: ...,
dependencies: [...],
rules: {
}
}
export default {
path: ...,
dependencies: [...],
rules: {
'mi_regla': (check: (rule: string) => boolean) => check('inventarios'),
}
}
export default parent => ({
...parent,
inventarios: {
title: 'Almacén',
items: {
...parent?.inventarios?.items,
inventarios: {
...
rule: 'mi_regla',
...
},
},
}
})
Lo lógico aquí es que si hay una view master con una regla '_ViewName_:visit'
, que usemos esa misma regla como regla de acceso en la propiedad rule de appmanu.js.
visit
, pero esta vez con una regla personalizada. Ej:
export default {
path: ...,
dependencies: [...],
rules: {
'ListaRecibosCliente:visit': false,
'ListaRecibosCliente:botonera-superior': false,
}
}
Ahora podemos utilizar la regla 'ListaRecibosCliente:botonera-superior'
de dos maneras diferentes. La primera sería como un componente y la segunda como una función:
<Can rule='ListaRecibosCliente:botonera-superior'>
<Button id='boton1' ... />
<Button id='boton2' ... />
<Button id='boton3' ... />
</Can>
if (ACL.can('ListaRecibosCliente:botonera-superior')) {
// do stuff...
}
true
/false
). Simple. Si es true
, todo usuario tendrá acceso, mientras que si es false
, solo un superusuario lo tendrá.
export default {
path: ...,
dependencies: [...],
rules: {
'ListaRecibosCliente:visit': false,
'ListaRecibosCliente:botonera-superior': true,
}
}
reciboscli/get
podrán entrar a la view ListaRecibosCliente
export default {
path: ...,
dependencies: [...],
rules: {
'ListaRecibosCliente:visit': (check) => check("reciboscli.get"),
'ListaRecibosCliente:botonera-superior': true,
}
}
export default {
path: ...,
dependencies: [...],
rules: {
'ListaRecibosCliente:visit': (check) => check(["reciboscli.get", "reciboscli/delete"]),
'ListaRecibosCliente:botonera-superior': true,
}
}
OR
de funciones Check.
export default {
path: ...,
dependencies: [...],
rules: {
'ListaRecibosCliente:visit': (check) => check("reciboscli.get") || check("reciboscli/delete"),
'ListaRecibosCliente:botonera-superior': true,
}
}