The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/imports/personal-access-tokens/server/api/methods/regenerateToken.js

23 lines
919 B

import { Meteor } from 'meteor/meteor';
Meteor.methods({
'personalAccessTokens:regenerateToken'({ tokenName }) {
if (!Meteor.userId()) {
throw new Meteor.Error('not-authorized', 'Not Authorized', { method: 'personalAccessTokens:regenerateToken' });
}
if (!RocketChat.authz.hasPermission(Meteor.userId(), 'create-personal-access-tokens')) {
throw new Meteor.Error('not-authorized', 'Not Authorized', { method: 'personalAccessTokens:regenerateToken' });
}
const tokenExist = RocketChat.models.Users.findPersonalAccessTokenByTokenNameAndUserId({
userId: Meteor.userId(),
tokenName,
});
if (!tokenExist) {
throw new Meteor.Error('error-token-does-not-exists', 'Token does not exist', { method: 'personalAccessTokens:regenerateToken' });
}
Meteor.call('personalAccessTokens:removeToken', { tokenName });
return Meteor.call('personalAccessTokens:generateToken', { tokenName });
},
});