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.
142 lines
3.1 KiB
142 lines
3.1 KiB
-- Create OrganizationUser Type |
|
IF NOT EXISTS ( |
|
SELECT |
|
* |
|
FROM |
|
sys.types |
|
WHERE |
|
[Name] = 'OrganizationUserType' AND |
|
is_user_defined = 1 |
|
) |
|
BEGIN |
|
CREATE TYPE [dbo].[OrganizationUserType] AS TABLE( |
|
[Id] UNIQUEIDENTIFIER, |
|
[OrganizationId] UNIQUEIDENTIFIER, |
|
[UserId] UNIQUEIDENTIFIER, |
|
[Email] NVARCHAR(256), |
|
[Key] VARCHAR(MAX), |
|
[Status] TINYINT, |
|
[Type] TINYINT, |
|
[AccessAll] BIT, |
|
[ExternalId] NVARCHAR(300), |
|
[CreationDate] DATETIME2(7), |
|
[RevisionDate] DATETIME2(7), |
|
[Permissions] NVARCHAR(MAX), |
|
[ResetPasswordKey] VARCHAR(MAX) |
|
) |
|
END |
|
GO |
|
|
|
-- Create many sproc |
|
IF OBJECT_ID('[dbo].[OrganizationUser_CreateMany]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[OrganizationUser_CreateMany] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[OrganizationUser_CreateMany] |
|
@OrganizationUsersInput [dbo].[OrganizationUserType] READONLY |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
INSERT INTO [dbo].[OrganizationUser] |
|
( |
|
[Id], |
|
[OrganizationId], |
|
[UserId], |
|
[Email], |
|
[Key], |
|
[Status], |
|
[Type], |
|
[AccessAll], |
|
[ExternalId], |
|
[CreationDate], |
|
[RevisionDate], |
|
[Permissions], |
|
[ResetPasswordKey] |
|
) |
|
SELECT |
|
OU.[Id], |
|
OU.[OrganizationId], |
|
OU.[UserId], |
|
OU.[Email], |
|
OU.[Key], |
|
OU.[Status], |
|
OU.[Type], |
|
OU.[AccessAll], |
|
OU.[ExternalId], |
|
OU.[CreationDate], |
|
OU.[RevisionDate], |
|
OU.[Permissions], |
|
OU.[ResetPasswordKey] |
|
FROM |
|
@OrganizationUsersInput OU |
|
END |
|
GO |
|
|
|
-- Bump many user account revision dates |
|
IF OBJECT_ID('[dbo].[User_BumpManyAccountRevisionDates]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[User_BumpManyAccountRevisionDates] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[User_BumpManyAccountRevisionDates] |
|
@Ids [dbo].[GuidIdArray] READONLY |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
UPDATE |
|
U |
|
SET |
|
[AccountRevisionDate] = GETUTCDATE() |
|
FROM |
|
[dbo].[User] U |
|
INNER JOIN |
|
@Ids IDs ON IDs.Id = U.Id |
|
END |
|
GO |
|
|
|
-- Update many OrganizationUsers |
|
IF OBJECT_ID('[dbo].[OrganizationUser_UpdateMany]') IS NOT NULL |
|
BEGIN |
|
DROP PROCEDURE [dbo].[OrganizationUser_UpdateMany] |
|
END |
|
GO |
|
|
|
CREATE PROCEDURE [dbo].[OrganizationUser_UpdateMany] |
|
@OrganizationUsersInput [dbo].[OrganizationUserType] READONLY |
|
AS |
|
BEGIN |
|
SET NOCOUNT ON |
|
|
|
UPDATE |
|
OU |
|
SET |
|
[OrganizationId] = OUI.[OrganizationId], |
|
[UserId] = OUI.[UserId], |
|
[Email] = OUI.[Email], |
|
[Key] = OUI.[Key], |
|
[Status] = OUI.[Status], |
|
[Type] = OUI.[Type], |
|
[AccessAll] = OUI.[AccessAll], |
|
[ExternalId] = OUI.[ExternalId], |
|
[CreationDate] = OUI.[CreationDate], |
|
[RevisionDate] = OUI.[RevisionDate], |
|
[Permissions] = OUI.[Permissions], |
|
[ResetPasswordKey] = OUI.[ResetPasswordKey] |
|
FROM |
|
[dbo].[OrganizationUser] OU |
|
INNER JOIN |
|
@OrganizationUsersInput OUI ON OU.Id = OUI.Id |
|
|
|
|
|
EXEC [dbo].[User_BumpManyAccountRevisionDates] |
|
( |
|
SELECT UserId |
|
FROM @OrganizationUsersInput |
|
) |
|
END |
|
GO
|
|
|