Add roles permissions management for Auth0 (#35116)

This commit is contained in:
James Pace
2019-05-06 09:15:18 +01:00
committed by Wesley Wigham
parent 259f24682f
commit d337d5f177
2 changed files with 310 additions and 1 deletions

View File

@@ -184,6 +184,80 @@ management.getUsersByEmail('email@address.com').then((users) => {
console.log(users);
});
management.getUserRoles({id: "user_id"}).then(roles => console.log(roles));
management.getUserRoles({id: "user_id"}, (err, data) => console.log(data));
management.getUserRoles({id: "user_id", per_page: 3}).then(roles => console.log(roles));
management.getUserRoles({id: "user_id", per_page: 3}, (err, data) => console.log(data));
management.getUserRoles({id: "user_id", include_totals: true}).then(rolePage => console.log(rolePage));
management.getUserRoles({id: "user_id", include_totals: true}, (err, data) => console.log(data));
management.removeRolesFromUser({id: "user_id"}, { roles: [ "role_id" ] })
.then(() => console.log("It worked"))
.catch(err => console.log("Something went wrong " + err));
management.removeRolesFromUser({id: "user_id"}, { roles: [ "role_id" ] }, err => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
management.assignRolestoUser({id: "user_id"}, { roles: [ "role_id" ] })
.then(() => console.log("It worked"))
.catch(err => console.log("Something went wrong " + err));
management.assignRolestoUser({id: "user_id"}, { roles: [ "role_id" ] }, err => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
management.getUserPermissions({id: "user_id"}).then(permissions => console.log(permissions));
management.getUserPermissions({id: "user_id"}, (err, data) => console.log(data));
management.getUserPermissions({id: "user_id", per_page: 3}).then(permissions => console.log(permissions));
management.getUserPermissions({id: "user_id", per_page: 3}, (err, data) => console.log(data));
management.getUserPermissions({id: "user_id", include_totals: true}).then(permissionPage => console.log(permissionPage));
management.getUserPermissions({id: "user_id", include_totals: true}, (err, data) => console.log(data));
management.removePermissionsFromUser({id: "user_id"}, {
permissions: [
{ permission_name: "god:mode", resource_server_identifier: "https://my.api.com" }
]
})
.then(() => console.log("It worked"))
.catch(err => console.log("Something went wrong " + err));
management.removePermissionsFromUser({id: "user_id"}, {
permissions: [
{ permission_name: "god:mode", resource_server_identifier: "https://my.api.com" }
]
}, (err) => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
management.assignPermissionsToUser({id: "user_id"}, {
permissions: [
{ permission_name: "god:mode", resource_server_identifier: "https://my.api.com" }
]
})
.then(() => console.log("It worked"))
.catch(err => console.log("Something went wrong " + err));
management.assignPermissionsToUser({id: "user_id"}, {
permissions: [
{ permission_name: "god:mode", resource_server_identifier: "https://my.api.com" }
]
}, (err) => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
// Using different client settings.
const retryableManagementClient = new auth0.ManagementClient({
@@ -310,3 +384,94 @@ management.sendEmailVerification({
client_id: 'client_id',
user_id: 'user_id'
}, (err, data) => console.log(data));
// Roles
management.getRoles().then(roles => console.log(roles));
management.getRoles((err, data) => console.log(data));
management.getRoles({id: "role_id"}).then(roles => console.log(roles));
management.getRoles({id: "role_id"}, (err, data) => console.log(data));
management.getRoles({id: "role_id", name_filter: "Admin"}).then(roles => console.log(roles));
management.getRoles({id: "role_id", name_filter: "Admin"}, (err, data) => console.log(data));
management.getRoles({id: "role_id", per_page: 12}).then(roles => console.log(roles));
management.getRoles({id: "role_id", per_page: 12}, (err, data) => console.log(data));
management.getRoles({id: "role_id", include_totals: true}).then(rolePage => console.log(rolePage));
management.getRoles({id: "role_id", include_totals: true}, (err, data) => console.log(data));
management.createRole({
name: "Admin",
description: "I have all the power"
}).then(role => console.log(role));
management.createRole({
name: "Admin",
description: "I have all the power"
}, (err, data) => console.log(data));
management.getRole({id: "role_id"}).then(role => console.log(role));
management.getRole({id: "role_id"}, (err, data) => console.log(data));
management.deleteRole({id: "role_id"})
.then(() => console.log("It worked"))
.catch(err => console.error("Something went wrong " + err));
management.deleteRole({id: "role_id"}, err => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
management.updateRole({id: "role_id"}, {
name: "The new name"
}).then(role => console.log(role));
management.updateRole({id: "role_id"}, {
name: "The new name"
}, (err, data) => console.log(data));
management.getPermissionsInRole({id: "role_id"}).then(permissions => console.log(permissions));
management.getPermissionsInRole({id: "role_id"}, (err, data) => console.log(data));
management.removePermissionsFromRole({id: "role_id"}, {
permissions: [
{ permission_name: "eat:cake", resource_server_identifier: "https://my.api.com" }
]
})
.then(() => console.log("It worked"))
.catch(err => console.log("Something went wrong " + err));
management.removePermissionsFromRole({id: "role_id"}, {
permissions: [
{ permission_name: "eat:cake", resource_server_identifier: "https://my.api.com" }
]
}, err => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
management.addPermissionsInRole({id: "role_id"}, {
permissions: [
{ permission_name: "eat:cake", resource_server_identifier: "https://my.api.com" }
]
})
.then(() => console.log("It worked"))
.catch(err => console.log("Something went wrong " + err));
management.addPermissionsInRole({id: "role_id"}, {
permissions: [
{ permission_name: "eat:cake", resource_server_identifier: "https://my.api.com" }
]
}, err => {
if (err) {
console.error("Something went wrong " + err);
} else {
console.log("It worked");
}
});
management.getUsersInRole({id: "role_id"}).then(users => console.log(users));
management.getUsersInRole({id: "role_id"}, (err, data) => console.log(data));
management.getUsersInRole({id: "role_id", per_page: 8}).then(users => console.log(users));
management.getUsersInRole({id: "role_id", per_page: 8}, (err, data) => console.log(data));
management.getUsersInRole({id: "role_id", include_totals: true}).then(userPage => console.log(userPage));
management.getUsersInRole({id: "role_id", include_totals: true}, (err, data) => console.log(data));

146
types/auth0/index.d.ts vendored
View File

@@ -110,6 +110,69 @@ export interface Rule {
order?: number;
}
export interface Role {
id?: string;
name?: string;
description?: string;
}
export interface GetRolesData extends ObjectWithId {
name_filter?: string;
per_page?: number;
page?: number;
}
export interface GetRolesDataPaged extends GetRolesData {
include_totals: boolean;
}
export interface RolePage extends Page {
roles: Role[];
}
export interface CreateRoleData {
name: string;
description?: string;
}
export interface UpdateRoleData {
name?: string;
description?: string;
}
export interface RolesData {
roles: string[];
}
export interface Permission {
resource_server_identifier?: string;
permission_name?: string;
resource_server_name?: string;
description?: string;
}
export interface PermissionsData {
permissions: PermissionData[]
}
export interface PermissionData {
resource_server_identifier: string;
permission_name: string;
}
export interface GetRoleUsersData extends ObjectWithId {
per_page?: number;
page?: number;
}
export interface GetRoleUsersDataPaged extends GetRoleUsersData {
include_totals: boolean;
}
export interface PermissionPage extends Page {
permissions: Permission[];
}
export interface Client {
/**
* The name of the client.
@@ -362,6 +425,24 @@ export interface UserPage extends Page {
users: User[];
}
export interface GetUserRolesData extends ObjectWithId {
page?: number;
per_page?: number;
}
export interface GetUserRolesDataPaged extends GetUserRolesData {
include_totals: boolean;
}
export interface GetUserPermissionsData extends ObjectWithId {
page?: number;
per_page?: number;
}
export interface GetUserPermissionsDataPaged extends GetUserPermissionsData {
include_totals: boolean;
}
export interface Identity {
connection: string;
user_id: string;
@@ -768,8 +849,43 @@ export class ManagementClient {
deleteDeviceCredential(params: ClientParams): Promise<User>;
deleteDeviceCredential(params: ClientParams, cb: (err: Error, data: any) => void): void;
// Roles
getRoles(): Promise<Role[]>;
getRoles(cb: (err: Error, roles: Role[]) => void): void;
getRoles(params: GetRolesData): Promise<Role[]>;
getRoles(params: GetRolesData, cb: (err: Error, roles: Role[]) => void): void;
getRoles(params: GetRolesDataPaged): Promise<RolePage>;
getRoles(params: GetRolesDataPaged, cb: (err: Error, rolePage: RolePage) => void): void;
// Rules
createRole(data: CreateRoleData): Promise<Role>;
createRole(data: CreateRoleData, cb: (err: Error, role: Role) => void): void;
getRole(params: ObjectWithId): Promise<Role>;
getRole(params: ObjectWithId, cb: (err: Error, role: Role) => void): void;
deleteRole(params: ObjectWithId): Promise<void>;
deleteRole(params: ObjectWithId, cb: (err: Error) => void): void;
updateRole(params: ObjectWithId, data: UpdateRoleData): Promise<Role>;
updateRole(params: ObjectWithId, data: UpdateRoleData, cb: (err: Error, role: Role) => void): void;
getPermissionsInRole(params: ObjectWithId): Promise<Permission[]>;
getPermissionsInRole(params: ObjectWithId, cb: (err: Error, permissions: Permission[]) => void): void;
removePermissionsFromRole(params: ObjectWithId, data: PermissionsData): Promise<void>;
removePermissionsFromRole(params: ObjectWithId, data: PermissionsData, cb: (err: Error) => void): void;
addPermissionsInRole(params: ObjectWithId, data: PermissionsData): Promise<void>;
addPermissionsInRole(params: ObjectWithId, data: PermissionsData, cb: (err: Error) => void): void;
getUsersInRole(params: ObjectWithId): Promise<User[]>;
getUsersInRole(params: ObjectWithId, cb: (err: Error, users: User[]) => void): void;
getUsersInRole(params: GetRoleUsersData): Promise<User[]>;
getUsersInRole(params: GetRoleUsersData, cb: (err: Error, users: User[]) => void): void;
getUsersInRole(params: GetRoleUsersDataPaged): Promise<UserPage>;
getUsersInRole(params: GetRoleUsersDataPaged, cb: (err: Error, userPage: UserPage) => void): void;
// Rules
getRules(): Promise<Rule[]>;
getRules(cb: (err: Error, rules: Rule[]) => void): void;
@@ -827,6 +943,34 @@ export class ManagementClient {
linkUsers(userId: string, params: LinkAccountsParams): Promise<any>;
linkUsers(userId: string, params: LinkAccountsParams, cb: (err: Error, data: any) => void): void;
// User roles
getUserRoles(params: ObjectWithId): Promise<Role[]>;
getUserRoles(params: ObjectWithId, cb: (err: Error, roles: Role[]) => void): void;
getUserRoles(params: GetUserRolesData): Promise<Role[]>;
getUserRoles(params: GetUserRolesData, cb: (err: Error, roles: Role[]) => void): void;
getUserRoles(params: GetUserRolesDataPaged): Promise<RolePage>;
getUserRoles(params: GetUserRolesDataPaged, cb: (err: Error, rolePage: RolePage) => void): void;
removeRolesFromUser(params: ObjectWithId, data: RolesData): Promise<void>;
removeRolesFromUser(params: ObjectWithId, data: RolesData, cb: (err: Error) => void): void
// The lowercase 't' is like this in the auth0 sdk
assignRolestoUser(params: ObjectWithId, data: RolesData): Promise<void>;
assignRolestoUser(params: ObjectWithId, data: RolesData, cb: (err: Error) => void): void;
// User permissions
getUserPermissions(params: ObjectWithId): Promise<Permission[]>;
getUserPermissions(params: ObjectWithId, cb: (err: Error, permissions: Permission[]) => void): void;
getUserPermissions(params: GetUserPermissionsData): Promise<Permission[]>;
getUserPermissions(params: GetUserPermissionsData, cb: (err: Error, permissions: Permission[]) => void): void;
getUserPermissions(params: GetUserPermissionsDataPaged): Promise<PermissionPage>;
getUserPermissions(params: GetUserPermissionsDataPaged, cb: (err: Error, permissionPage: PermissionPage) => void): void;
removePermissionsFromUser(params: ObjectWithId, data: PermissionsData): Promise<void>;
removePermissionsFromUser(params: ObjectWithId, data: PermissionsData, cb: (err: Error) => void): void;
assignPermissionsToUser(params: ObjectWithId, data: PermissionsData): Promise<void>;
assignPermissionsToUser(params: ObjectWithId, data: PermissionsData, cb: (err: Error) => void): void;
// Tokens
getBlacklistedTokens(): Promise<any>;