.NET-Software-Entwicklung - DotNetNuke - Business-Develoment
# Thursday, July 14, 2005

Bulkzuweisung von einer Gruppe

Es gibt in DotNetNuke keine Möglichkeit eine neu angelegt Gruppe (Rolle) allen oder nur einem bestimmten Teil von Usern zu zuordnen.

Da es heute bei mir schnell gehen mußte, habe ich das über SQL-Statements gelöst aber vielleicht bau ich ja auch mal ein Modul für DNN....

DotNetNuke verwaltet die Zuordnng von Usern und Rollen in zwei Systemen

  • Ein eigenes System von DNN, besteht aus ein paar Tabellen
  • Die Microsoft Implementierung von MemberRole

Ich erspare mich jetzt zu schildern, warum das so ist ....

Es ist darauf zu achten, dass alle beiden Bereiche von DNN aktuallisiert werden!

Hier die SQL-Befehle:

Declare @ApplicationId nvarchar(255)
Declare @RoleGUI nvarchar(255)
Declare @RoleId int

--Die interne GUI für das Portal
SET @ApplicationId = '{59DFEA62-67E2-450E-A039-91ECA87FCDF4}'
--Die eindeutige Kennzeichung einer Rolle in der ASPNET Implementierung
SET @RoleGUI = '{D8N05067-B4BD-4ER9-9773-F1BAC67FF47G}'
--Die eigene DNN Verwaltung
SET @RoleId = 1

INSERT INTO aspnet_UsersInRoles ( UserId, RoleId )
SELECT U.UserID, @RoleGUI As RoleId FROM ASPNET_USERS U WHERE (ApplicationId = @ApplicationId) and (U.UserId not in (SELECT UR.UserId FROM aspnet_UsersInRoles UR WHERE UR.RoleId = @RoleGUI));


--SELECT Count(*) FROM ASPNET_USERSINROLES WHERE RoleId = @RoleGUI;--


INSERT INTO UserRoles ( UserId, RoleId, ExpiryDate )
SELECT U.UserId, @RoleId as RoleId, '03.08.2005' AS ExpiryDate FROM Users U WHERE U.UserId not in (SELECT UserId FROM UserRoles WHERE RoleId = @RoleId)

--SElECT Count(*) FROM UserRoles WHERE (RoleId = @RoleId)---

 


 


Thursday, July 14, 2005 10:25:10 PM (W. Europe Daylight Time, UTC+02:00)  #    - Trackback
DotNetNuke