/// <summary> /// Performs the package action during package installation /// </summary> /// <param name="packageName"> /// The package name. /// </param> /// <param name="xmlData"> /// The xml data. /// </param> /// <returns> /// The <see cref="bool"/> indicating success of failure. /// </returns> public bool Execute(string packageName, XmlNode xmlData) { var dtd = _services.DataTypeService.GetDataTypeDefinitionById(-88); // Create the MerchelloCustomer MemberType var mt = new MemberType(-1) { Alias = MemberTypeName, Name = MemberTypeName, AllowedAsRoot = true }; var fn = new PropertyType(dtd) { Alias = "firstName", Name = "First name" }; var ln = new PropertyType(dtd) { Alias = "lastName", Name = "Last name" }; mt.AddPropertyType(fn); mt.AddPropertyType(ln); mt.SetMemberCanEditProperty("firstName", true); mt.SetMemberCanEditProperty("lastName", true); mt.SetMemberCanViewProperty("firstName", true); mt.SetMemberCanViewProperty("lastName", true); _services.MemberTypeService.Save(mt); // Add the MemberGroup var mg = new MemberGroup() { Name = MemberGroupName }; _services.MemberGroupService.Save(mg); return true; }
/// <summary> /// Create a new MemberType /// </summary> /// <param name="Text">The name of the MemberType</param> /// <param name="u">Creator of the MemberType</param> public static MemberType MakeNew(User u, string Text) { var alias = helpers.Casing.SafeAliasWithForcingCheck(Text); //special case, if it stars with an underscore, we have to re-add it for member types if (Text.StartsWith("_")) { alias = "_" + alias; } var mt = new Umbraco.Core.Models.MemberType(-1) { Level = 1, Name = Text, Icon = "icon-user", Alias = alias }; ApplicationContext.Current.Services.MemberTypeService.Save(mt); var legacy = new MemberType(mt); var e = new NewEventArgs(); legacy.OnNew(e); return(legacy); }
public IMemberType AddDialogueMemberType() { #region DataType Ids //-49 Umbraco.TrueFalse //-51 Umbraco.Integer //-87 Umbraco.TinyMCEv3 //-88 Umbraco.Textbox //-89 Umbraco.TextboxMultiple //-90 Umbraco.UploadField //-92 Umbraco.NoEdit //-36 Umbraco.DateTime //-37 Umbraco.ColorPickerAlias //-38 Umbraco.FolderBrowser //-39 Umbraco.DropDownMultiple //-40 Umbraco.RadioButtonList //-41 Umbraco.Date //-42 Umbraco.DropDown //-43 Umbraco.CheckBoxList //1034 Umbraco.ContentPickerAlias //1035 Umbraco.MediaPicker //1036 Umbraco.MemberPicker //1040 Umbraco.RelatedLinks //1041 Umbraco.Tags //1045 Umbraco.MultipleMediaPicker //1077 Apt.PartialPicker //1089 Umbraco.ImageCropper //1092 Umbraco.TinyMCEv3 //1103 Our.Umbraco.FilePicker //1104 Umbraco.MemberGroupPicker //1105 Apt.CssPicker //1128 Dialogue.ThemePicker //1132 Dialogue.Permissions //1147 Umbraco.MultipleTextstring #endregion var label = _dataTypeService.GetDataTypeDefinitionById(-92); var upload = _dataTypeService.GetDataTypeDefinitionById(-90); var textstring = _dataTypeService.GetDataTypeDefinitionById(-88); var textboxMultiple = _dataTypeService.GetDataTypeDefinitionById(-89); var truefalse = _dataTypeService.GetDataTypeDefinitionById(-49); var numeric = _dataTypeService.GetDataTypeDefinitionById(-51); var datetime = _dataTypeService.GetDataTypeDefinitionById(-36); // Profile, Settings, Social Tokens // Create the member Type var memType = new MemberType(-1) { Alias = AppConstants.MemberTypeAlias, Name = "Dialogue Member" }; // Create the Profile group/tab var profileGroup = new PropertyGroup { Name = "Profile", }; profileGroup.PropertyTypes.Add(new PropertyType(label) { Alias = "email", Name = "Email", SortOrder = 0, Description = "This is a bit rubbish, but it's the only way to get the email from the new member service at the current time" }); profileGroup.PropertyTypes.Add(new PropertyType(upload) { Alias = "avatar", Name = "Avatar", SortOrder = 0, Description = "" }); profileGroup.PropertyTypes.Add(new PropertyType(textstring) { Alias = "website", Name = "Website", SortOrder = 0, Description = "" }); profileGroup.PropertyTypes.Add(new PropertyType(textstring) { Alias = "twitter", Name = "Twitter", SortOrder = 0, Description = "" }); profileGroup.PropertyTypes.Add(new PropertyType(textboxMultiple) { Alias = "signature", Name = "Signature", SortOrder = 0, Description = "" }); profileGroup.PropertyTypes.Add(new PropertyType(datetime) { Alias = "lastActiveDate", Name = "Last Active Date", SortOrder = 0, Description = "" }); memType.PropertyGroups.Add(profileGroup); // Create the Settings group/tab var settingsGroup = new PropertyGroup { Name = "Settings", }; settingsGroup.PropertyTypes.Add(new PropertyType(truefalse) { Alias = "canEditOtherMembers", Name = "Can Edit Other Members", SortOrder = 0, Description = "Enable this and the user can edit other members posts, their profiles and ban members (Usually use in conjunction with moderate permissions)." }); settingsGroup.PropertyTypes.Add(new PropertyType(truefalse) { Alias = "disableEmailNotifications", Name = "Disable Email Notifications", SortOrder = 0, Description = "" }); settingsGroup.PropertyTypes.Add(new PropertyType(truefalse) { Alias = "disablePosting", Name = "Disable Posting", SortOrder = 0, Description = "" }); settingsGroup.PropertyTypes.Add(new PropertyType(truefalse) { Alias = "disablePrivateMessages", Name = "Disable Private Messages", SortOrder = 0, Description = "" }); settingsGroup.PropertyTypes.Add(new PropertyType(truefalse) { Alias = "disableFileUploads", Name = "Disable File Uploads", SortOrder = 0, Description = "" }); settingsGroup.PropertyTypes.Add(new PropertyType(numeric) { Alias = "postCount", Name = "Post Count", SortOrder = 0, Description = "The users post count. This is kept like this to help reduce SQL queries and improve performance of the forum" }); memType.PropertyGroups.Add(settingsGroup); // Create the Settings group/tab var socialGroup = new PropertyGroup { Name = "Social Tokens", }; socialGroup.PropertyTypes.Add(new PropertyType(textstring) { Name = "Facebook Access Token", Alias = "facebookAccessToken", SortOrder = 0, Description = "" }); socialGroup.PropertyTypes.Add(new PropertyType(textstring) { Name = "Facebook Id", Alias = "facebookId", SortOrder = 0, Description = "" }); socialGroup.PropertyTypes.Add(new PropertyType(textstring) { Name = "Google Access Token", Alias = "googleAccessToken", SortOrder = 0, Description = "" }); socialGroup.PropertyTypes.Add(new PropertyType(textstring) { Name = "Google Id", Alias = "googleId", SortOrder = 0, Description = "" }); memType.PropertyGroups.Add(socialGroup); // Add Slug memType.AddPropertyType(new PropertyType(textstring) { Name = "Slug", Alias = "slug", SortOrder = 0, Description = "This is what we use to look up the member in the front end" }); _memberTypeService.Save(memType); return memType; }
/// <summary> /// Adds the Merchello MemberType. /// </summary> /// <returns> /// The <see cref="IMemberType"/>. /// </returns> private IMemberType AddMemberType() { var dtd = _services.DataTypeService.GetDataTypeDefinitionById(-88); // Create the MerchelloCustomer MemberType var mt = new MemberType(-1) { Alias = "merchelloCustomer", Name = "Merchello Customer", AllowedAsRoot = true }; var fn = new PropertyType(dtd) { Alias = "firstName", Name = "First name" }; var ln = new PropertyType(dtd) { Alias = "lastName", Name = "Last name" }; mt.AddPropertyType(fn); mt.AddPropertyType(ln); mt.SetMemberCanEditProperty("firstName", true); mt.SetMemberCanEditProperty("lastName", true); mt.SetMemberCanViewProperty("firstName", true); mt.SetMemberCanViewProperty("lastName", true); _services.MemberTypeService.Save(mt); // Add the MemberGroup var mg = new MemberGroup() { Name = "Customers" }; _services.MemberGroupService.Save(mg); return mt; }
/// <summary> /// A helper method that will create a basic/generic member for use with a generic membership provider /// </summary> /// <returns></returns> internal static IMember CreateGenericMembershipProviderMember(string name, string email, string username, string password) { var identity = int.MaxValue; var memType = new MemberType(-1); var propGroup = new PropertyGroup { Name = "Membership", Id = --identity }; propGroup.PropertyTypes.Add(new PropertyType(Constants.PropertyEditors.TextboxAlias, DataTypeDatabaseType.Ntext) { Alias = Constants.Conventions.Member.Comments, Name = Constants.Conventions.Member.CommentsLabel, SortOrder = 0, Id = --identity }); propGroup.PropertyTypes.Add(new PropertyType(Constants.PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer) { Alias = Constants.Conventions.Member.IsApproved, Name = Constants.Conventions.Member.IsApprovedLabel, SortOrder = 3, Id = --identity }); propGroup.PropertyTypes.Add(new PropertyType(Constants.PropertyEditors.TrueFalseAlias, DataTypeDatabaseType.Integer) { Alias = Constants.Conventions.Member.IsLockedOut, Name = Constants.Conventions.Member.IsLockedOutLabel, SortOrder = 4, Id = --identity }); propGroup.PropertyTypes.Add(new PropertyType(Constants.PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date) { Alias = Constants.Conventions.Member.LastLockoutDate, Name = Constants.Conventions.Member.LastLockoutDateLabel, SortOrder = 5, Id = --identity }); propGroup.PropertyTypes.Add(new PropertyType(Constants.PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date) { Alias = Constants.Conventions.Member.LastLoginDate, Name = Constants.Conventions.Member.LastLoginDateLabel, SortOrder = 6, Id = --identity }); propGroup.PropertyTypes.Add(new PropertyType(Constants.PropertyEditors.NoEditAlias, DataTypeDatabaseType.Date) { Alias = Constants.Conventions.Member.LastPasswordChangeDate, Name = Constants.Conventions.Member.LastPasswordChangeDateLabel, SortOrder = 7, Id = --identity }); memType.PropertyGroups.Add(propGroup); return new Member(name, email, username, password, -1, memType); }
public static MemberType CreateSimpleMemberType() { var contentType = new MemberType(-1) { Alias = "simple", Name = "Simple Page", Description = "ContentType used for simple text pages", Icon = ".sprTreeDoc3", Thumbnail = "doc.png", SortOrder = 1, CreatorId = 0, Trashed = false }; var contentCollection = new PropertyTypeCollection(); contentCollection.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "title", Name = "Title", Description = "", HelpText = "", Mandatory = false, SortOrder = 1, DataTypeDefinitionId = -88 }); contentCollection.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "bodyText", Name = "Body Text", Description = "", HelpText = "", Mandatory = false, SortOrder = 2, DataTypeDefinitionId = -87 }); contentCollection.Add(new PropertyType(new Guid(), DataTypeDatabaseType.Ntext) { Alias = "author", Name = "Author", Description = "Name of the author", HelpText = "", Mandatory = false, SortOrder = 3, DataTypeDefinitionId = -88 }); contentType.PropertyGroups.Add(new PropertyGroup(contentCollection) { Name = "Content", SortOrder = 1 }); //ensure that nothing is marked as dirty contentType.ResetDirtyProperties(false); return contentType; }