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
useRolesanduseUsershooks - Features Modal State - Built-in features modal state management in
useEditionsanduseTenantshooks
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
| Package | Version | Changes |
|---|---|---|
| @abpjs/core | 2.2.0 | Version alignment |
| @abpjs/theme-shared | 2.2.0 | Version alignment |
| @abpjs/theme-basic | 2.2.0 | Version alignment |
| @abpjs/account | 2.2.0 | Version alignment |
| @abpjs/identity | 2.2.0 | Version alignment |
| @abpjs/feature-management | 2.2.0 | Version alignment |
| @abpjs/permission-management | 2.2.0 | Version alignment |
| @abpjs/setting-management | 2.2.0 | Version alignment |
| @abpjs/tenant-management | 2.2.0 | Version alignment |
| @abpjs/account-pro | 2.2.0 | Version alignment |
| @abpjs/audit-logging | 2.2.0 | Version alignment |
| @abpjs/identity-pro | 2.2.0 | New: unlockUser, permissions modal state |
| @abpjs/language-management | 2.2.0 | Version alignment |
| @abpjs/saas | 2.2.0 | New: 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