Skip to main content
Version: 3.0.0

v2.2.0

Release Date: February 2026

This minor release adds built-in modal state management to Identity Pro and SaaS hooks, plus a new user unlock feature for Identity Pro.

Highlights

  • User Unlock - New unlockUser(id) method in Identity Pro for unlocking locked out users
  • Permissions Modal State - Built-in permissions modal state management in useRoles and useUsers hooks
  • Features Modal State - Built-in features modal state management in useEditions and useTenants hooks

New Features

@abpjs/identity-pro

User Unlock

New method to unlock users who have been locked out:

import { useUsers } from '@abpjs/identity-pro';

function UsersPage() {
const { unlockUser } = useUsers();

const handleUnlock = async (userId: string) => {
const result = await unlockUser(userId);
if (result.success) {
// User unlocked successfully
}
};
}

Permissions Modal State Management

Both useRoles and useUsers hooks now include built-in state management for the permissions modal:

import { useUsers } from '@abpjs/identity-pro';
import { PermissionManagementModal } from '@abpjs/permission-management';

function UsersPage() {
const {
visiblePermissions,
permissionsProviderKey,
onVisiblePermissionsChange,
openPermissionsModal,
} = useUsers();

return (
<>
{/* Open permissions modal for a user */}
<button onClick={() => openPermissionsModal(`U:${userId}`)}>
Manage Permissions
</button>

{/* Permissions modal */}
<PermissionManagementModal
visible={visiblePermissions}
providerKey={permissionsProviderKey}
providerName="U"
onVisibleChange={onVisiblePermissionsChange}
/>
</>
);
}

@abpjs/saas

Features Modal State Management

Both useEditions and useTenants hooks now include built-in state management for the features modal:

import { useTenants } from '@abpjs/saas';
import { FeatureManagementModal } from '@abpjs/feature-management';

function TenantsPage() {
const {
visibleFeatures,
featuresProviderKey,
onVisibleFeaturesChange,
openFeaturesModal,
} = useTenants();

return (
<>
{/* Open features modal for a tenant */}
<button onClick={() => openFeaturesModal(tenantId)}>
Manage Features
</button>

{/* Features modal */}
<FeatureManagementModal
visible={visibleFeatures}
providerKey={featuresProviderKey}
providerName="T"
onVisibleChange={onVisibleFeaturesChange}
/>
</>
);
}

Packages

PackageVersionChanges
@abpjs/core2.2.0Version alignment
@abpjs/theme-shared2.2.0Version alignment
@abpjs/theme-basic2.2.0Version alignment
@abpjs/account2.2.0Version alignment
@abpjs/identity2.2.0Version alignment
@abpjs/feature-management2.2.0Version alignment
@abpjs/permission-management2.2.0Version alignment
@abpjs/setting-management2.2.0Version alignment
@abpjs/tenant-management2.2.0Version alignment
@abpjs/account-pro2.2.0Version alignment
@abpjs/audit-logging2.2.0Version alignment
@abpjs/identity-pro2.2.0New: unlockUser, permissions modal state
@abpjs/language-management2.2.0Version alignment
@abpjs/saas2.2.0New: features modal state management

Upgrade

npm install @abpjs/core@2.2.0 @abpjs/theme-shared@2.2.0 @abpjs/theme-basic@2.2.0

For Pro packages:

npm install @abpjs/identity-pro@2.2.0 @abpjs/saas@2.2.0 @abpjs/account-pro@2.2.0 @abpjs/audit-logging@2.2.0 @abpjs/language-management@2.2.0

See Also