summaryrefslogtreecommitdiffstats
path: root/projecttemplates/RelyingPartyDatabase/Schema Objects/Schemas/dbo/Programmability/Stored Procedures/AddUser.proc.sql
diff options
context:
space:
mode:
Diffstat (limited to 'projecttemplates/RelyingPartyDatabase/Schema Objects/Schemas/dbo/Programmability/Stored Procedures/AddUser.proc.sql')
-rw-r--r--projecttemplates/RelyingPartyDatabase/Schema Objects/Schemas/dbo/Programmability/Stored Procedures/AddUser.proc.sql37
1 files changed, 37 insertions, 0 deletions
diff --git a/projecttemplates/RelyingPartyDatabase/Schema Objects/Schemas/dbo/Programmability/Stored Procedures/AddUser.proc.sql b/projecttemplates/RelyingPartyDatabase/Schema Objects/Schemas/dbo/Programmability/Stored Procedures/AddUser.proc.sql
new file mode 100644
index 0000000..b22b231
--- /dev/null
+++ b/projecttemplates/RelyingPartyDatabase/Schema Objects/Schemas/dbo/Programmability/Stored Procedures/AddUser.proc.sql
@@ -0,0 +1,37 @@
+CREATE PROCEDURE [dbo].[AddUser]
+ (
+ @firstName nvarchar(50),
+ @lastName nvarchar(50),
+ @openid nvarchar(255),
+ @role nvarchar(255)
+ )
+AS
+ DECLARE
+ @roleid int,
+ @userid int
+
+ BEGIN TRANSACTION
+
+ INSERT INTO [dbo].[User] (FirstName, LastName) VALUES (@firstName, @lastName)
+ SET @userid = (SELECT @@IDENTITY)
+
+ IF (SELECT COUNT(*) FROM dbo.Role WHERE [Name] = @role) = 0
+ BEGIN
+ INSERT INTO dbo.Role (Name) VALUES (@role)
+ SET @roleid = (SELECT @@IDENTITY)
+ END
+ ELSE
+ BEGIN
+ SET @roleid = (SELECT RoleId FROM dbo.Role WHERE [Name] = @role)
+ END
+
+ INSERT INTO dbo.UserRole (UserId, RoleId) VALUES (@userId, @roleid)
+
+ INSERT INTO dbo.AuthenticationToken
+ (UserId, OpenIdClaimedIdentifier, OpenIdFriendlyIdentifier)
+ VALUES
+ (@userid, @openid, @openid)
+
+ COMMIT TRANSACTION
+
+ RETURN @userid