casl react
import { AbilityBuilder } from '@casl/ability';
import React, { useState, useContext } from 'react';
import { AbilityContext } from './Can';
function updateAbility(ability, user) {
const { can, rules } = new AbilityBuilder();
if (user.role === 'admin') {
can('manage', 'all');
} else {
can('read', 'all');
}
ability.update(rules);
}
export default () => {
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const ability = useContext(AbilityContext);
const login = () => {
const params = {
method: 'POST',
body: JSON.stringify({ username, password })
};
return fetch('path/to/api/login', params)
.then(response => response.json())
.then(({ user }) => updateAbility(ability, user));
};
return (
<form>
{/* input fields */}
<button onClick={login}>Login</button>
</form>
);
};
Also in JavaScript:
- discord.js send embed
- install vue-cli
- how to make a rectangle in javascript
- fetch api in js
- javascript delete first character in string
- nodejs promise then example
- print in javascript
- email validation regex
- javascript indexOf object value in array
- javascript var vs let
- Converting circular structure to JSON
- angular add bootstrap
- angular limit string length
- mongoose find and update prop
- looping in javascript
- info
- javascript give class to element
- (node:14372) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGHUP listeners added to [process]. Use emitter.setMaxListeners() to increase limit
- string json to object c#
- javascript check if empty
- nodejs print
- firebase realtime database increment value
- recorrer letra por letra js
- npm ERR! network If you are behind a proxy, please make sure that the ;proxy' config is set properly.