Как заблокировать/разблокировать пользователя?

Последнее обновление - 07.05.2021voroshilova07.05.2021 1
<p>Есть таблица со всеми пользователяями, как можно&nbsp;&nbsp;заблокировать/разблокировать пользователя?</p>

Блокировка пользователя регулируется  полями lockoutEnabled и lockoutEndDate в таблице as_users. Выводим  управление полем lockoutEnabled в таблицу  с Пользователями (через операции в таблице), а поле lockoutEndDate  заполняем как +20 лет к текущей дате при изменении lockoutEnabled. При разблокировке lockoutEndDate  — NULL. 

Пример:

Добавляем две операции в таблицу (как на рисунке ниже)

Настраиваем их SQL:

CREATE PROCEDURE [dbo].[crud_clients_block_operation]
	@filters CRUDFilterParameter READONLY,
	@itemIDs nvarchar(256),
	@username nvarchar(32)
AS
BEGIN

    update as_users 
    set lockoutEnabled = 0,
    lockoutEndDate = dateadd(year, 20, getdate())
    where try_cast(id as nvarchar)+',' = @itemIDs
    
	select 'Пользователь Заблокирован' Msg, 1 Result, '' Info, '/clients' RedirectUrl
			
END
CREATE PROCEDURE [dbo].[crud_clients_unblock_operation]
	@filters CRUDFilterParameter READONLY,
	@itemIDs nvarchar(256),
	@username nvarchar(32)
AS
BEGIN
    update as_users 
    set lockoutEnabled = 1,
    lockoutEndDate = NULL
    where try_cast(id as nvarchar)+',' = @itemIDs
    
	select 'Пользователь Разблокирован' Msg, 1 Result, '' Info, '/clients' RedirectUrl

Донастраиваем SQL самой таблицы, то есть если пользователь заблокирован, то скрываем кнопку "Заблокировать", и наоборот, если разблокирован, то скрываем кнопку "Разблокировать"

select  u.id, 
            ''+isnull(nullif(fio,''),'Клиент без Имени')+'' as name,
            iif(lockoutEnabled = 1, null, '0') as hide_block,
            iif(lockoutEnabled = 0, null, '0') as hide_unblock
from ctr_contragents c 
join as_users u on u.username =  c.username

Другие темы

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности

Ищем партнеров-разработчиков на T-SQL

Прямая работа с заказчиками как ИП или самозанятый. Нужно знать только SQL и HTML
Работа на MS SQL Server
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK