/// <summary> /// Creates the YAF role. /// </summary> /// <param name="roleName">Name of the role.</param> /// <param name="boardId">The board id.</param> /// <param name="yafBoardAccessMasks">The YAF board access masks.</param> /// <returns> /// Returns the Role id of the created Role /// </returns> public static long CreateYafRole(string roleName, int boardId, List <RoleInfo> yafBoardAccessMasks) { int accessMaskId; try { // Give the default DNN Roles Member Access, unknown roles get "No Access Mask" accessMaskId = roleName.Equals("Registered Users") || roleName.Equals("Subscribers") ? yafBoardAccessMasks.Find(mask => mask.RoleName.Equals("Member Access")).RoleID : yafBoardAccessMasks.Find(mask => mask.RoleName.Equals("No Access Mask")).RoleID; } catch (Exception) { accessMaskId = yafBoardAccessMasks.Find(mask => mask.RoleGroupID.Equals(0)).RoleID; } var groupFlags = new GroupFlags(); // Role exists in membership but not in yaf itself simply add it to yaf return(BoardContext.Current.GetRepository <Group>().Save( null, boardId, roleName, groupFlags, accessMaskId, 0, null, 100, null, 0, null, 0, 0)); }
public static GroupFlags ReadGroupFlags(this BinaryReader reader) { byte[] arrayOfBytes = new byte[4]; reader.Read(arrayOfBytes, 0, 4); BitArray flags = new BitArray(arrayOfBytes); GroupFlags groupFlags = new GroupFlags(); groupFlags.HasBSPtree = flags[0]; // (MOBN and MOBR chunk). groupFlags.Haslightmap = flags[1]; // (MOLM, MOLD). (UNUSED: 20740) possibly: subtract mohd.color in mocv fixing // SubtractAmbientColour groupFlags.Hasvertexolors = flags[2]; // (MOCV chunk). groupFlags.SMOGroupEXTERIOR = flags[3]; // -- Outdoor - also influences how doodads are culled // is outdoors groupFlags.SMOGroupEXTERIOR_LIT = flags[6]; // -- "Do not use local diffuse lightning". Applicable for both doodads from this wmo group(color from MODD) and water(CWorldView::GatherMapObjDefGroupLiquids). groupFlags.SMOGroupUNREACHABLE = flags[7]; groupFlags.Haslights = flags[9]; // (MOLR chunk) groupFlags.SMOGroupLOD = flags[10]; // Legion+? Also load for LoD != 0 (_lod* groups) groupFlags.Hasdoodads = flags[11]; // (MODR chunk) groupFlags.SMOGroupLIQUIDSURFACE = flags[12]; // -- Has water(MLIQ chunk) groupFlags.SMOGroupINTERIOR = flags[13]; // -- Indoor groupFlags.SMOGroupALWAYSDRAW = flags[16]; // -- clear 0x8 after CMapObjGroup::Create() in MOGP and MOGI // AlwaysDrawEvenIfOutdoors groupFlags.HasMORIandMORBchunks = flags[17]; // Has triangle strips groupFlags.Showskybox = flags[18]; // -- automatically unset if MOSB not present. groupFlags.is_not_water_but_ocean = flags[19]; // LiquidType related, see below in the MLIQ chunk. // is oceanic water groupFlags.IsMountAllowed = flags[21]; groupFlags.SMOGroupCVERTS2 = flags[24]; // Has two MOCV chunks: Just add two or don't set 0x4 to only use cverts2. // has two vertex shading sets groupFlags.SMOGroupTVERTS2 = flags[25]; // Has two MOTV chunks: Just add two. // has two texture coordinate sets groupFlags.SMOGroupANTIPORTAL = flags[26]; // Just call CMapObjGroup::CreateOccluders() independent of groupname being "antiportal". requires intBatchCount == 0, extBatchCount == 0, UNREACHABLE. // create occlusion without clearing bsp groupFlags.unknown = flags[27]; // requires intBatchCount == 0, extBatchCount == 0, UNREACHABLE. // occlusion related groupFlags.SMOGroupEXTERIOR_CULL = flags[29]; groupFlags.SMOGroupTVERTS3 = flags[30]; // Has three MOTV chunks, eg. for MOMT with shader 18. // 1 unused flag follows return(groupFlags); }
public GroupAdministrationInfo(long groupId, long accountId, long transactionId, long timestamp, GroupFlags flags = GroupFlags.None) { GroupId = groupId; AccountId = accountId; TransactionId = transactionId; Flags = flags; AdministrationLastTransactionInfo = new LastTransactionInfo(transactionId, timestamp); _accounts[accountId] = GroupAccountFlags.Admin; }
public GroupInformation(byte[] inData) { using (MemoryStream ms = new MemoryStream(inData)) { using (BinaryReader br = new BinaryReader(ms)) { this.Flags = (GroupFlags)br.ReadUInt32(); this.BoundingBox = br.ReadBox(); this.GroupNameOffset = br.ReadInt32(); } } }
public GroupInformation(byte[] inData) { using (MemoryStream ms = new MemoryStream(inData)) { using (BinaryReader br = new BinaryReader(ms)) { this.Flags = (GroupFlags)br.ReadUInt32(); this.BoundingBox = br.ReadBox(); this.GroupNameOffset = br.ReadInt32(); } } }
public void UpdateFlags() { if (this.LightReferences != null) { this.Flags |= GroupFlags.HasLights; } if (this.DoodadReferences != null) { this.Flags |= GroupFlags.HasDoodads; } if (this.BSPNodes != null && this.BSPFaceIndices != null) { this.Flags |= GroupFlags.HasBSP; } if (this.mpbv != null && this.mpbp != null && this.mpbi != null && this.mpbg != null) { this.Flags |= GroupFlags.UnknownLODRelated; } if (this.VertexColours != null) { this.Flags |= GroupFlags.HasVertexColours; } if (this.Liquids != null) { this.Flags |= GroupFlags.HasLiquids; } if (this.TriangleStripIndices != null && this.TriangleStrips != null) { this.Flags |= GroupFlags.HasTriangleStrips; } if (this.AdditionalTextureCoordinates != null) { this.Flags |= GroupFlags.HasTwoTextureCoordinateSets; } if (this.AdditionalVertexColours != null) { this.Flags |= GroupFlags.HasTwoVertexShadingSets; } if (this.SecondAddtionalTextureCoordinates != null) { this.Flags |= GroupFlags.HasThreeTextureCoordinateSets; } }
/// <summary> /// /// </summary> /// <param name="flags"></param> /// <returns></returns> private string CreateQuery(GroupFlags flags) { string query = string.Empty; query += $"?endpoints={flags.HasFlag(GroupFlags.ENDPOINTS).ToString().ToLower()}"; query += $"&type={flags.HasFlag(GroupFlags.TYPE).ToString().ToLower()}"; query += $"&config={flags.HasFlag(GroupFlags.CONFIG).ToString().ToLower()}"; query += $"&icons={flags.HasFlag(GroupFlags.ICONS).ToString().ToLower()}"; query += $"&info={flags.HasFlag(GroupFlags.INFO).ToString().ToLower()}"; query += $"&full={flags.HasFlag(GroupFlags.FULL).ToString().ToLower()}"; return(query); }
/// <summary> /// Handles page load event. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> protected void Page_Load(object sender, EventArgs e) { // this needs to be done just once, not during postbacks if (!IsPostBack) { // create page links CreatePageLinks(); // bind data BindData(); // is this editing of existing role or creation of new one? if (Request.QueryString.GetFirstOrDefault("i") != null) { // we are not creating new role this.NewGroupRow.Visible = false; // get data about edited role using (DataTable dt = DB.group_list(PageContext.PageBoardID, Request.QueryString.GetFirstOrDefault("i"))) { // get it as row DataRow row = dt.Rows[0]; // get role flags var flags = new GroupFlags(row["Flags"]); // set controls to role values this.Name.Text = (string)row["Name"]; this.IsGuestX.Checked = flags.IsGuest; this.IsAdminX.Checked = flags.IsAdmin; this.IsStartX.Checked = flags.IsStart; this.IsModeratorX.Checked = flags.IsModerator; this.PMLimit.Text = row["PMLimit"].ToString(); this.StyleTextBox.Text = row["Style"].ToString(); this.Priority.Text = row["SortOrder"].ToString(); this.UsrAlbums.Text = row["UsrAlbums"].ToString(); this.UsrAlbumImages.Text = row["UsrAlbumImages"].ToString(); this.UsrSigChars.Text = row["UsrSigChars"].ToString(); this.UsrSigBBCodes.Text = row["UsrSigBBCodes"].ToString(); this.UsrSigHTMLTags.Text = row["UsrSigHTMLTags"].ToString(); this.Description.Text = row["Description"].ToString(); // IsGuest flag can be set for only one role. if it isn't for this, disable that row if (flags.IsGuest) { this.IsGuestTR.Visible = true; } } } } }
/// <summary> /// Handles provider roles adding/deleting. /// </summary> /// <param name="source"> /// The source. /// </param> /// <param name="e"> /// The e. /// </param> protected void RoleListNetItemCommand([NotNull] object source, [NotNull] RepeaterCommandEventArgs e) { // detect which command are we handling switch (e.CommandName) { case "add": // save role and get its ID const int InitialPMessages = 0; var groupFlags = new GroupFlags(); var groupId = this.GetRepository <Group>().Save( null, this.PageContext.PageBoardID, e.CommandArgument.ToString(), groupFlags, 1, InitialPMessages, null, 100, null, 0, null, null, 0, 0); // redirect to newly created role BuildLink.Redirect(ForumPages.Admin_EditGroup, "i={0}", groupId); break; case "delete": // delete role from provider data this.Get <IAspNetRolesHelper>().DeleteRole(e.CommandArgument.ToString()); // re-bind data this.BindData(); break; } }
/// <summary> /// Handles page load event. /// </summary> protected void Page_Load(object sender, System.EventArgs e) { // this needs to be done just once, not during postbacks if (!IsPostBack) { // create page links CreatePageLinks(); // bind data BindData(); // is this editing of existing role or creation of new one? if (Request.QueryString["i"] != null) { // we are not creating new role NewGroupRow.Visible = false; // get data about edited role using (DataTable dt = DB.group_list(PageContext.PageBoardID, Request.QueryString["i"])) { // get it as row DataRow row = dt.Rows[0]; // get role flags GroupFlags flags = new GroupFlags(row["Flags"]); // set controls to role values Name.Text = (string)row["Name"]; IsGuestX.Checked = flags.IsGuest; IsAdminX.Checked = flags.IsAdmin; IsStartX.Checked = flags.IsStart; IsModeratorX.Checked = flags.IsModerator; // IsGuest flag can be set for only one role. if it isn't for this, disable that row if (flags.IsGuest) { IsGuestTR.Visible = true; } } } } }
public GroupAdministrationInfo(Unpacker unpacker) { unpacker.Unpack(out GroupId); unpacker.Unpack(out AccountId); unpacker.Unpack(out TransactionId); AdministrationLastTransactionInfo = new LastTransactionInfo(unpacker); Flags = (GroupFlags)unpacker.UnpackUInt(); var count = unpacker.UnpackInt(); for (var i = 0; i < count; i++) { var id = unpacker.UnpackLong(); _accounts[id] = (GroupAccountFlags)unpacker.UnpackUInt(); } count = unpacker.UnpackInt(); for (var i = 0; i < count; i++) { var id = unpacker.UnpackLong(); _pendingAccounts[id] = (GroupAccountFlags)unpacker.UnpackUInt(); } }
private static void PopulateGroupList(ListView listView, IEnumerable <UserGroup> groups) { foreach (UserGroup group in groups) { GroupFlags flags = group.Flags & ~(GroupFlags.EnabledByDefault); if ((flags & GroupFlags.Integrity) == GroupFlags.None) { ListViewItem item = new ListViewItem(group.GetName()); item.SubItems.Add(flags.ToString()); if ((flags & GroupFlags.Enabled) == GroupFlags.Enabled) { item.BackColor = Color.LightGreen; } else if ((flags & GroupFlags.UseForDenyOnly) == GroupFlags.UseForDenyOnly) { item.BackColor = Color.LightSalmon; } item.Tag = group; listView.Items.Add(item); } } }
public void LoadBinaryData(byte[] inData) { using (MemoryStream ms = new MemoryStream(inData)) { using (BinaryReader br = new BinaryReader(ms)) { this.GroupNameOffset = br.ReadUInt32(); this.DescriptiveGroupNameOffset = br.ReadUInt32(); this.Flags = (GroupFlags) br.ReadUInt32(); this.BoundingBox = br.ReadBox(); this.PortalReferenceStartingIndex = br.ReadUInt16(); this.PortalReferenceCount = br.ReadUInt16(); this.RenderBatchCountA = br.ReadUInt16(); this.RenderBatchCountInterior = br.ReadUInt16(); this.RenderBatchCountExterior = br.ReadUInt16(); this.Unknown = br.ReadUInt16(); for (int i = 0; i < 4; ++i) { this.FogIndices.Add(br.ReadByte()); } this.LiquidType = br.ReadUInt32(); this.GroupID = new UInt32ForeignKey("WMOAreaTable", "WMOGroupID", br.ReadUInt32()); this.UnknownFlags = br.ReadUInt32(); this.Unused = br.ReadUInt32(); // Required subchunks this.PolygonMaterials = br.ReadIFFChunk<ModelPolygonMaterials>(); this.VertexIndices = br.ReadIFFChunk<ModelVertexIndices>(); this.Vertices = br.ReadIFFChunk<ModelVertices>(); this.Normals = br.ReadIFFChunk<ModelNormals>(); this.TextureCoordinates = br.ReadIFFChunk<ModelTextureCoordinates>(); this.RenderBatches = br.ReadIFFChunk<ModelRenderBatches>(); // Optional chunks if (br.PeekChunkSignature() == MOBS.Signature) { this.mobs = br.ReadIFFChunk<MOBS>(); } if (this.Flags.HasFlag(GroupFlags.HasLights)) { this.LightReferences = br.ReadIFFChunk<ModelLightReferences>(); } if (this.Flags.HasFlag(GroupFlags.HasDoodads)) { this.DoodadReferences = br.ReadIFFChunk<ModelDoodadReferences>(); } if (this.Flags.HasFlag(GroupFlags.HasBSP)) { this.BSPNodes = br.ReadIFFChunk<ModelBSPNodes>(); this.BSPFaceIndices = br.ReadIFFChunk<ModelBSPFaceIndices>(); } if (this.Flags.HasFlag(GroupFlags.UnknownLODRelated)) { this.mpbv = br.ReadIFFChunk<MPBV>(); this.mpbp = br.ReadIFFChunk<MPBP>(); this.mpbi = br.ReadIFFChunk<MPBI>(); this.mpbg = br.ReadIFFChunk<MPBG>(); } if (this.Flags.HasFlag(GroupFlags.HasVertexColours)) { this.VertexColours = br.ReadIFFChunk<ModelVertexColours>(); } if (this.Flags.HasFlag(GroupFlags.HasLiquids)) { this.Liquids = br.ReadIFFChunk<ModelLiquids>(); } if (this.Flags.HasFlag(GroupFlags.HasTriangleStrips)) { this.TriangleStripIndices = br.ReadIFFChunk<ModelTriangleStripIndices>(); this.TriangleStrips = br.ReadIFFChunk<ModelTriangleStrips>(); } if (this.Flags.HasFlag(GroupFlags.HasTwoTextureCoordinateSets)) { this.AdditionalTextureCoordinates = br.ReadIFFChunk<ModelTextureCoordinates>(); } if (this.Flags.HasFlag(GroupFlags.HasTwoVertexShadingSets)) { this.AdditionalVertexColours = br.ReadIFFChunk<ModelVertexColours>(); } if (this.Flags.HasFlag(GroupFlags.HasThreeTextureCoordinateSets)) { this.SecondAddtionalTextureCoordinates = br.ReadIFFChunk<ModelTextureCoordinates>(); } } } }
/// <summary> /// Synchronizes the user roles. /// </summary> /// <param name="boardId">The board id.</param> /// <param name="portalId">The portal id.</param> /// <param name="yafUserId">The YAF user id.</param> /// <param name="dnnUserInfo">The DNN user info.</param> /// <returns> /// Returns if the Roles where synched or not /// </returns> public static bool SynchronizeUserRoles(int boardId, int portalId, int yafUserId, UserInfo dnnUserInfo) { // Make sure are roles exist ImportDNNRoles(boardId, dnnUserInfo.Roles); var yafUserRoles = Data.GetYafUserRoles(boardId, yafUserId); var yafBoardRoles = LegacyDb.group_list(boardId, DBNull.Value); var rolesChanged = false; // TODO : Move code to sql SP // add yaf only roles to yaf foreach (DataRow row in yafBoardRoles.Rows) { GroupFlags roleFlags = new GroupFlags(row["Flags"]); var role = new RoleInfo { RoleName = row["Name"].ToString(), RoleID = row["GroupID"].ToType <int>() }; if (roleFlags.IsGuest) { continue; } if (roleFlags.IsStart) { if (yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { continue; } UpdateUserRole(role, yafUserId, dnnUserInfo.Username, true); rolesChanged = true; } else { if (!dnnUserInfo.Roles.Any(dnnRole => dnnRole.Equals(row["Name"].ToString()))) { continue; } if (yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { continue; } UpdateUserRole(role, yafUserId, dnnUserInfo.Username, true); rolesChanged = true; } } var roleController = new RoleController(); // Remove user from dnn role if no longer included foreach ( RoleInfo role in roleController.GetPortalRoles(portalId) .Cast <RoleInfo>() .Where( role => !dnnUserInfo.Roles.Any(existRole => existRole.Equals(role.RoleName)) && yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName)))) { UpdateUserRole(role, yafUserId, dnnUserInfo.Username, false); rolesChanged = true; } // empty out access table if (rolesChanged && YafContext.Current != null) { YafContext.Current.GetRepository <ActiveAccess>().Reset(); } return(rolesChanged); }
/// <summary> /// Deserialzes the provided binary data of the object. This is the full data block which follows the data /// signature and data block length. /// </summary> /// <param name="inData">The binary data containing the object.</param> public void LoadBinaryData(byte[] inData) { using (MemoryStream ms = new MemoryStream(inData)) { using (BinaryReader br = new BinaryReader(ms)) { this.GroupNameOffset = br.ReadUInt32(); this.DescriptiveGroupNameOffset = br.ReadUInt32(); this.Flags = (GroupFlags)br.ReadUInt32(); this.BoundingBox = br.ReadBox(); this.PortalReferenceStartingIndex = br.ReadUInt16(); this.PortalReferenceCount = br.ReadUInt16(); this.RenderBatchCountA = br.ReadUInt16(); this.RenderBatchCountInterior = br.ReadUInt16(); this.RenderBatchCountExterior = br.ReadUInt16(); this.Unknown = br.ReadUInt16(); for (int i = 0; i < 4; ++i) { this.FogIndices.Add(br.ReadByte()); } this.LiquidType = br.ReadUInt32(); this.GroupID = new UInt32ForeignKey("WMOAreaTable", "WMOGroupID", br.ReadUInt32()); this.UnknownFlags = br.ReadUInt32(); this.Unused = br.ReadUInt32(); // Required subchunks this.PolygonMaterials = br.ReadIFFChunk <ModelPolygonMaterials>(); this.VertexIndices = br.ReadIFFChunk <ModelVertexIndices>(); this.Vertices = br.ReadIFFChunk <ModelVertices>(); this.Normals = br.ReadIFFChunk <ModelNormals>(); this.TextureCoordinates = br.ReadIFFChunk <ModelTextureCoordinates>(); this.RenderBatches = br.ReadIFFChunk <ModelRenderBatches>(); // Optional chunks if (br.PeekChunkSignature() == MOBS.Signature) { this.mobs = br.ReadIFFChunk <MOBS>(); } if (this.Flags.HasFlag(GroupFlags.HasLights)) { this.LightReferences = br.ReadIFFChunk <ModelLightReferences>(); } if (this.Flags.HasFlag(GroupFlags.HasDoodads)) { this.DoodadReferences = br.ReadIFFChunk <ModelDoodadReferences>(); } if (this.Flags.HasFlag(GroupFlags.HasBSP)) { this.BSPNodes = br.ReadIFFChunk <ModelBSPNodes>(); this.BSPFaceIndices = br.ReadIFFChunk <ModelBSPFaceIndices>(); } if (this.Flags.HasFlag(GroupFlags.UnknownLODRelated)) { this.mpbv = br.ReadIFFChunk <MPBV>(); this.mpbp = br.ReadIFFChunk <MPBP>(); this.mpbi = br.ReadIFFChunk <MPBI>(); this.mpbg = br.ReadIFFChunk <MPBG>(); } if (this.Flags.HasFlag(GroupFlags.HasVertexColours)) { this.VertexColours = br.ReadIFFChunk <ModelVertexColours>(); } if (this.Flags.HasFlag(GroupFlags.HasLiquids)) { this.Liquids = br.ReadIFFChunk <ModelLiquids>(); } if (this.Flags.HasFlag(GroupFlags.HasTriangleStrips)) { this.TriangleStripIndices = br.ReadIFFChunk <ModelTriangleStripIndices>(); this.TriangleStrips = br.ReadIFFChunk <ModelTriangleStrips>(); } if (this.Flags.HasFlag(GroupFlags.HasTwoTextureCoordinateSets)) { this.AdditionalTextureCoordinates = br.ReadIFFChunk <ModelTextureCoordinates>(); } if (this.Flags.HasFlag(GroupFlags.HasTwoVertexShadingSets)) { this.AdditionalVertexColours = br.ReadIFFChunk <ModelVertexColours>(); } if (this.Flags.HasFlag(GroupFlags.HasThreeTextureCoordinateSets)) { this.SecondAddtionalTextureCoordinates = br.ReadIFFChunk <ModelTextureCoordinates>(); } } } }
/// <summary> /// Handles page load event. /// </summary> protected void Page_Load(object sender, System.EventArgs e) { // this needs to be done just once, not during postbacks if (!IsPostBack) { // create page links CreatePageLinks(); // bind data BindData(); // is this editing of existing role or creation of new one? if (Request.QueryString["i"] != null) { // we are not creating new role NewGroupRow.Visible = false; // get data about edited role using (DataTable dt = DB.group_list(PageContext.PageBoardID, Request.QueryString["i"])) { // get it as row DataRow row = dt.Rows[0]; // get role flags GroupFlags flags = new GroupFlags(row["Flags"]); // set controls to role values Name.Text = (string)row["Name"]; IsGuestX.Checked = flags.IsGuest; IsAdminX.Checked = flags.IsAdmin; IsStartX.Checked = flags.IsStart; IsModeratorX.Checked = flags.IsModerator; // IsGuest flag can be set for only one role. if it isn't for this, disable that row if (flags.IsGuest) IsGuestTR.Visible = true; } } } }
/// <summary> /// Handles page load event. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> protected void Page_Load([NotNull] object sender, [NotNull] EventArgs e) { // this needs to be done just once, not during postbacks if (this.IsPostBack) { return; } // create page links this.CreatePageLinks(); this.Save.Text = this.GetText("COMMON", "SAVE"); this.Cancel.Text = this.GetText("COMMON", "CANCEL"); // bind data this.BindData(); // is this editing of existing role or creation of new one? if (this.Request.QueryString.GetFirstOrDefault("i") == null) { return; } // we are not creating new role this.NewGroupRow.Visible = false; // get data about edited role using ( var dt = this.GetRepository <Group>() .List( boardId: this.PageContext.PageBoardID, groupID: this.Request.QueryString.GetFirstOrDefaultAs <int>("i"))) { // get it as row var row = dt.Rows[0]; // get role flags var flags = new GroupFlags(row["Flags"]); // set controls to role values this.Name.Text = (string)row["Name"]; this.IsAdminX.Checked = flags.IsAdmin; this.IsAdminX.Enabled = !flags.IsGuest; this.IsStartX.Checked = flags.IsStart; this.IsStartX.Enabled = !flags.IsGuest; this.IsModeratorX.Checked = flags.IsModerator; this.IsModeratorX.Enabled = !flags.IsGuest; this.PMLimit.Text = row["PMLimit"].ToString(); this.PMLimit.Enabled = !flags.IsGuest; this.StyleTextBox.Text = row["Style"].ToString(); this.Priority.Text = row["SortOrder"].ToString(); this.UsrAlbums.Text = row["UsrAlbums"].ToString(); this.UsrAlbums.Enabled = !flags.IsGuest; this.UsrAlbumImages.Text = row["UsrAlbumImages"].ToString(); this.UsrAlbumImages.Enabled = !flags.IsGuest; this.UsrSigChars.Text = row["UsrSigChars"].ToString(); this.UsrSigChars.Enabled = !flags.IsGuest; this.UsrSigBBCodes.Text = row["UsrSigBBCodes"].ToString(); this.UsrSigBBCodes.Enabled = !flags.IsGuest; this.UsrSigHTMLTags.Text = row["UsrSigHTMLTags"].ToString(); this.UsrSigHTMLTags.Enabled = !flags.IsGuest; this.Description.Text = row["Description"].ToString(); this.IsGuestX.Checked = flags.IsGuest; // IsGuest flag can be set for only one role. if it isn't for this, disable that row if (flags.IsGuest) { this.IsGuestTR.Visible = true; this.IsGuestX.Enabled = !flags.IsGuest; this.AccessList.Visible = false; } } }
/// <summary> /// Synchronizes the user roles. /// </summary> /// <param name="boardId">The board id.</param> /// <param name="portalId">The portal id.</param> /// <param name="yafUserId">The YAF user id.</param> /// <param name="dnnUserInfo">The DNN user info.</param> /// <returns> /// Returns if the Roles where synched or not /// </returns> public static bool SynchronizeUserRoles([NotNull] int boardId, [NotNull] int portalId, [NotNull] int yafUserId, [NotNull] UserInfo dnnUserInfo) { // Make sure are roles exist ImportDnnRoles(boardId, dnnUserInfo.Roles); var yafUserRoles = DataController.GetYafUserRoles(yafUserId); var yafBoardRoles = BoardContext.Current.GetRepository <Group>().List(boardId: boardId); var rolesChanged = false; // add yaf only roles to yaf foreach (var boardRole in yafBoardRoles) { var roleFlags = new GroupFlags(boardRole.Flags); var role = new RoleInfo { RoleName = boardRole.Name, RoleID = boardRole.ID }; if (roleFlags.IsGuest) { continue; } if (roleFlags.IsStart) { if (yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { continue; } UpdateUserRole(role, yafUserId, true); rolesChanged = true; } else { // ADD dnn super user manually to the administrator role if (role.RoleName.Equals("Administrators") && dnnUserInfo.IsSuperUser) { if (!yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { UpdateUserRole(role, yafUserId, true); } } if (!dnnUserInfo.Roles.Any(dnnRole => dnnRole.Equals(boardRole.Name))) { continue; } if (yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { continue; } UpdateUserRole(role, yafUserId, true); rolesChanged = true; } } var roleController = new RoleController(); // Remove user from dnn role if no longer included foreach ( var role in roleController.GetRoles(portalId) .Where( role => !dnnUserInfo.Roles.Any(existRole => existRole.Equals(role.RoleName)) && yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName)))) { UpdateUserRole(role, yafUserId, false); rolesChanged = true; } // empty out access table if (!rolesChanged || BoardContext.Current == null) { return(rolesChanged); } BoardContext.Current.GetRepository <ActiveAccess>().DeleteAll(); BoardContext.Current.GetRepository <Active>().DeleteAll(); return(true); }
public static bool Has(this GroupFlags mask, GroupFlags toCheck) { return (mask & toCheck) != 0; }
public void UpdateFlags() { if (this.LightReferences != null) { this.Flags |= GroupFlags.HasLights; } if (this.DoodadReferences != null) { this.Flags |= GroupFlags.HasDoodads; } if (this.BSPNodes != null && this.BSPFaceIndices != null) { this.Flags |= GroupFlags.HasBSP; } if (this.mpbv != null && this.mpbp != null && this.mpbi != null && this.mpbg != null) { this.Flags |= GroupFlags.UnknownLODRelated; } if (this.VertexColours != null) { this.Flags |= GroupFlags.HasVertexColours; } if (this.Liquids != null) { this.Flags |= GroupFlags.HasLiquids; } if (this.TriangleStripIndices != null && this.TriangleStrips != null) { this.Flags |= GroupFlags.HasTriangleStrips; } if (this.AdditionalTextureCoordinates != null) { this.Flags |= GroupFlags.HasTwoTextureCoordinateSets; } if (this.AdditionalVertexColours != null) { this.Flags |= GroupFlags.HasTwoVertexShadingSets; } if (this.SecondAddtionalTextureCoordinates != null) { this.Flags |= GroupFlags.HasThreeTextureCoordinateSets; } }
public GroupRegistrationRequest(Unpacker unpacker, ushort size) : base(unpacker, size, GroupAdministration.FeatureId, GroupRegistrationRequestId) { GroupFlags = (GroupFlags)unpacker.UnpackUInt(); }
/// <summary> /// Save or Add new Group /// </summary> /// <param name="repository"> /// The repository. /// </param> /// <param name="groupId"> /// The group Id. /// </param> /// <param name="boardId"> /// The board Id. /// </param> /// <param name="name"> /// The name. /// </param> /// <param name="flags"> /// The flags. /// </param> /// <param name="accessMaskId"> /// The access mask id. /// </param> /// <param name="messagesLimit"> /// The messages Limit. /// </param> /// <param name="style"> /// The style. /// </param> /// <param name="sortOrder"> /// The sort order. /// </param> /// <param name="description"> /// The description. /// </param> /// <param name="signatureChars"> /// Defines number of allowed characters in user signature. /// </param> /// <param name="signatureBBCodes"> /// The signature BBCodes. /// </param> /// <param name="signatureHTMLTags"> /// The signature HTML Tags. /// </param> /// <param name="userAlbums"> /// Defines allowed number of albums. /// </param> /// <param name="userAlbumImages"> /// Defines number of images allowed for an album. /// </param> /// <returns> /// Returns the group Id /// </returns> public static int Save( this IRepository <Group> repository, [CanBeNull] int?groupId, [NotNull] int boardId, [NotNull] string name, [NotNull] GroupFlags flags, [NotNull] int accessMaskId, [NotNull] int messagesLimit, [CanBeNull] string style, [NotNull] short sortOrder, [CanBeNull] string description, [NotNull] int signatureChars, [CanBeNull] string signatureBBCodes, [CanBeNull] string signatureHTMLTags, [CanBeNull] int userAlbums, [CanBeNull] int userAlbumImages) { CodeContracts.VerifyNotNull(repository); if (groupId.HasValue) { repository.UpdateOnly( () => new Group { Name = name, Flags = flags.BitValue, PMLimit = messagesLimit, Style = style, SortOrder = sortOrder, Description = description, UsrSigChars = signatureChars, UsrSigBBCodes = signatureBBCodes, UsrSigHTMLTags = signatureHTMLTags, UsrAlbums = userAlbums, UsrAlbumImages = userAlbumImages }, g => g.ID == groupId.Value); repository.FireUpdated(groupId); } else { groupId = repository.Insert( new Group { Name = name, BoardID = boardId, Flags = flags.BitValue, PMLimit = messagesLimit, Style = style, SortOrder = sortOrder, Description = description, UsrSigChars = signatureChars, UsrSigBBCodes = signatureBBCodes, UsrSigHTMLTags = signatureHTMLTags, UsrAlbums = userAlbums, UsrAlbumImages = userAlbumImages }); repository.FireNew(groupId); BoardContext.Current.GetRepository <ForumAccess>().InitialAssignGroup(groupId.Value, accessMaskId); } if (style.IsSet()) { // -- group styles override rank styles BoardContext.Current.Get <IRaiseEvent>().Raise(new UpdateUserStylesEvent(boardId)); } return(groupId.Value); }
/// <summary> /// Synchronizes the user roles. /// </summary> /// <param name="boardId">The board id.</param> /// <param name="portalId">The portal id.</param> /// <param name="yafUserId">The YAF user id.</param> /// <param name="dnnUserInfo">The DNN user info.</param> /// <returns> /// Returns if the Roles where synched or not /// </returns> public static bool SynchronizeUserRoles(int boardId, int portalId, int yafUserId, UserInfo dnnUserInfo) { // Make sure are roles exist ImportDNNRoles(boardId, dnnUserInfo.Roles); var yafUserRoles = Data.GetYafUserRoles(boardId, yafUserId); var yafBoardRoles = YafContext.Current.GetRepository <Group>().ListTyped(boardId: boardId); var rolesChanged = false; // TODO : Move code to sql SP // add yaf only roles to yaf foreach (var boardRole in yafBoardRoles) { var roleFlags = new GroupFlags(boardRole.Flags); var role = new RoleInfo { RoleName = boardRole.Name, RoleID = boardRole.ID }; if (roleFlags.IsGuest) { continue; } if (roleFlags.IsStart) { if (yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { continue; } UpdateUserRole(role, yafUserId, dnnUserInfo.Username, true); rolesChanged = true; } else { if (!dnnUserInfo.Roles.Any(dnnRole => dnnRole.Equals(boardRole.Name))) { continue; } if (yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName))) { continue; } UpdateUserRole(role, yafUserId, dnnUserInfo.Username, true); rolesChanged = true; } } var roleController = new RoleController(); // Remove user from dnn role if no longer included foreach ( RoleInfo role in roleController.GetPortalRoles(portalId) .Cast <RoleInfo>() .Where( role => !dnnUserInfo.Roles.Any(existRole => existRole.Equals(role.RoleName)) && yafUserRoles.Any(existRole => existRole.RoleName.Equals(role.RoleName)))) { UpdateUserRole(role, yafUserId, dnnUserInfo.Username, false); rolesChanged = true; } // empty out access table if (rolesChanged && YafContext.Current != null) { YafContext.Current.GetRepository <ActiveAccess>().DeleteAll(); YafContext.Current.GetRepository <Active>().DeleteAll(); } return(rolesChanged); }
public GroupRegistrationRequest(GroupFlags groupFlags) : base(GroupAdministration.FeatureId, GroupRegistrationRequestId) { GroupFlags = groupFlags; }
/// <summary> /// Saves the click. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param> protected void SaveClick([NotNull] object sender, [NotNull] EventArgs e) { if (!ValidationHelper.IsValidInt(this.PMLimit.Text.Trim())) { this.PageContext.AddLoadMessage( this.GetText("ADMIN_EDITGROUP", "MSG_VALID_NUMBER"), MessageTypes.warning); return; } if (!ValidationHelper.IsValidInt(this.Priority.Text.Trim())) { this.PageContext.AddLoadMessage(this.GetText("ADMIN_EDITGROUP", "MSG_INTEGER"), MessageTypes.warning); return; } if (!ValidationHelper.IsValidInt(this.UsrAlbums.Text.Trim())) { this.PageContext.AddLoadMessage( this.GetText("ADMIN_EDITGROUP", "MSG_ALBUM_NUMBER"), MessageTypes.warning); return; } if (!ValidationHelper.IsValidInt(this.UsrSigChars.Text.Trim())) { this.PageContext.AddLoadMessage( this.GetText("ADMIN_EDITGROUP", "MSG_SIG_NUMBER"), MessageTypes.warning); return; } if (!ValidationHelper.IsValidInt(this.UsrAlbumImages.Text.Trim())) { this.PageContext.AddLoadMessage( this.GetText("ADMIN_EDITGROUP", "MSG_TOTAL_NUMBER"), MessageTypes.warning); return; } // Role int?roleId = null; // get role ID from page's parameter if (this.Get <HttpRequestBase>().QueryString.Exists("i")) { roleId = this.Get <HttpRequestBase>().QueryString.GetFirstOrDefaultAs <int>("i"); } // get new and old name var roleName = this.Name.Text.Trim(); var oldRoleName = string.Empty; // if we are editing existing role, get it's original name if (roleId.HasValue) { // get the current role name in the DB var groups = this.GetRepository <Group>().List(boardId: this.PageContext.PageBoardID); groups.ForEach(group => oldRoleName = group.Name); } var groupFlags = new GroupFlags { IsGuest = this.IsGuestX.Checked, IsAdmin = this.IsAdminX.Checked, IsModerator = this.IsModeratorX.Checked, IsStart = this.IsStartX.Checked }; // save role and get its ID if it's new (if it's old role, we get it anyway) roleId = this.GetRepository <Group>().Save( roleId, this.PageContext.PageBoardID, roleName, groupFlags, this.AccessMaskID.SelectedValue.ToType <int>(), this.PMLimit.Text.Trim().ToType <int>(), this.StyleTextBox.Text.Trim(), this.Priority.Text.Trim().ToType <short>(), this.Description.Text, this.UsrSigChars.Text.ToType <int>(), this.UsrSigBBCodes.Text, this.UsrSigHTMLTags.Text, this.UsrAlbums.Text.Trim().ToType <int>(), this.UsrAlbumImages.Text.Trim().ToType <int>()); // see if need to rename an existing role... if (oldRoleName.IsSet() && roleName != oldRoleName && this.Get <IAspNetRolesHelper>().RoleExists(oldRoleName) && !this.Get <IAspNetRolesHelper>().RoleExists(roleName) && !this.IsGuestX.Checked) { // transfer users in addition to changing the name of the role... var users = this.Get <IAspNetRolesHelper>().GetUsersInRole(oldRoleName); // delete the old role... this.Get <IAspNetRolesHelper>().DeleteRole(oldRoleName); // create new role... this.Get <IAspNetRolesHelper>().CreateRole(roleName); if (users.Any()) { // put users into new role... users.ForEach(user => this.Get <IAspNetRolesHelper>().AddUserToRole(user, roleName)); } } else if (!this.Get <IAspNetRolesHelper>().RoleExists(roleName) && !this.IsGuestX.Checked) { // if role doesn't exist in provider's data source, create it // simply create it this.Get <IAspNetRolesHelper>().CreateRole(roleName); } // Access masks for a newly created or an existing role if (this.Get <HttpRequestBase>().QueryString.Exists("i")) { // go through all forums for (var i = 0; i < this.AccessList.Items.Count; i++) { // get current repeater item var item = this.AccessList.Items[i]; // get forum ID var forumId = int.Parse(item.FindControlAs <HiddenField>("ForumID").Value); // save forum access masks for this role this.GetRepository <ForumAccess>().Save( forumId, roleId.ToType <int>(), item.FindControlAs <DropDownList>("AccessmaskID").SelectedValue.ToType <int>()); } this.Get <LinkBuilder>().Redirect(ForumPages.Admin_Groups); } // Done, redirect to role editing page this.Get <LinkBuilder>().Redirect(ForumPages.Admin_EditGroup, "i={0}", roleId); }
public void groupApplyModifiers() { RuntimeData rd = RuntimeData.get(); Model model = m_model; if (null == model) { return; } GeometryModifiersData mods = rd.m_modifiers.findGeomModifier(model.name, m_dir); if (null == mods) { return; } if (mods.LodNear != 0.0f) { lod_near = mods.LodNear; } if (mods.LodFar != 0.0f) { lod_far = mods.LodFar; } if (mods.LodNearFade != 0.0f) { lod_near_fade = mods.LodNearFade; } if (mods.LodFarFade != 0.0f) { lod_far_fade = mods.LodFarFade; } if (mods.LodScale != 0.0f) { lod_scale = mods.LodScale; } GroupFlags v1 = (GroupFlags)mods.GroupFlags; shadow_dist = mods.ShadowDist; parent_fade = v1.HasFlag(GroupFlags.ParentFade); region_marker = v1.HasFlag(GroupFlags.RegionMarker); volume_trigger = v1.HasFlag(GroupFlags.VolumeTrigger); water_volume = v1.HasFlag(GroupFlags.WaterVolume); lava_volume = v1.HasFlag(GroupFlags.LavaVolume); sewer_volume = v1.HasFlag(GroupFlags.SewerWaterVolume); door_volume = v1.HasFlag(GroupFlags.DoorVolume); key_light = v1.HasFlag(GroupFlags.KeyLight); tray = v1.HasFlag(GroupFlags.VisTray) | v1.HasFlag(GroupFlags.VisOutside); if (mods.LodNear != 0.0f || mods.LodFar != 0.0f || mods.LodNearFade != 0.0f || mods.LodFarFade != 0.0f || mods.LodScale != 0.0f) { lod_fromtrick = true; } /* * if (mods.node._TrickFlags.HasFlag(TrickFlags.NoColl)) * ; //TODO: disable collisions for this node * if (mods.node._TrickFlags.HasFlag(TrickFlags.SelectOnly)) * ; // set the model's triangles as only selectable ?? ( selection mesh ? ) * if (mods.node._TrickFlags.HasFlag(TrickFlags.NotSelectable)) * ; // */ }