Revision: 210
http://svn.sourceforge.net/nmailserver/?rev=210&view=rev
Author: tmyroadctfig
Date: 2007-05-31 05:13:10 -0700 (Thu, 31 May 2007)
Log Message:
-----------
Changed reinstall schema to grant admin system privileges.
Modified Paths:
--------------
NMail/trunk/NMail.LocalStoreData.NHibernate/NHibernateLocalStoreData.cs
Modified: NMail/trunk/NMail.LocalStoreData.NHibernate/NHibernateLocalStoreData.cs
===================================================================
--- NMail/trunk/NMail.LocalStoreData.NHibernate/NHibernateLocalStoreData.cs 2007-05-31 12:11:17 UTC (rev 209)
+++ NMail/trunk/NMail.LocalStoreData.NHibernate/NHibernateLocalStoreData.cs 2007-05-31 12:13:10 UTC (rev 210)
@@ -1882,14 +1882,30 @@
public void ReinstallSchema() {
new global::NHibernate.Tool.hbm2ddl.SchemaExport(NHibernateHelper.Configuration).Create(false, true);
+ // Create an administrator user
LocalStoreUser administrator = new LocalStoreUser();
administrator.Username = "Administrator"; // TODO: get from a global admin name or something
CreateUser(administrator);
+ // Grant the admin privileges
+ GenericAce<SystemPrivilege> sysAce = new GenericAce<SystemPrivilege>();
+ sysAce.AceType = AcePrivilegeType.Allow;
+ sysAce.Privilege = SystemPrivilege.CreateMailDomain
+ | SystemPrivilege.DeleteMailDomain
+ | SystemPrivilege.EditAllAcls
+ | SystemPrivilege.ModifySystemPrivileges
+ | SystemPrivilege.UpdateMailDomain
+ | SystemPrivilege.ViewMailDomains
+ | SystemPrivilege.ViewSystemPrivileges;
+ sysAce.Identifier = administrator.Username;
+ SetSystemPrivilegeAce(sysAce);
+
+ // Create an administrator group
LocalStoreGroup adminGroup = new LocalStoreGroup();
adminGroup.Name = "Administrators"; // TODO: get from a global admin name or something
CreateGroup(adminGroup);
+ // Create an initial mail domain
MailDomain localMailDomain = new MailDomain();
localMailDomain.PrimaryHost = new Host(Domain.LocalHost);
localMailDomain.UserIds.Add(administrator.UserId);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|