From: <ro...@us...> - 2006-08-10 14:13:59
|
Revision: 295 Author: rouquin Date: 2006-08-10 07:13:50 -0700 (Thu, 10 Aug 2006) ViewCVS: http://svn.sourceforge.net/tcdb/?rev=295&view=rev Log Message: ----------- Enabled Administration page, etc. Modified Paths: -------------- Website/App_Code/Products.cs Website/App_Code/Users.cs Website/Includes/Administration.ascx Website/Includes/Administration.ascx.cs Website/Includes/AdministrationTree.ascx.cs Website/Includes/Assignments.ascx.cs Website/Includes/Products.ascx.cs Website/Includes/UserSettings.ascx.cs Modified: Website/App_Code/Products.cs =================================================================== --- Website/App_Code/Products.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/App_Code/Products.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -52,6 +52,14 @@ return productList; } + + public static void DeleteProduct(int productID) + { + Product product = GetProduct(productID); + + tcdbDataSetTableAdapters.db_productsTableAdapter pAdapter = new tcdbDataSetTableAdapters.db_productsTableAdapter(); + pAdapter.Update(product.ID, product.NAME, product.DESCRIPTION, null, null, null, null, null, product.CODENAME, false); + } } public class Product Modified: Website/App_Code/Users.cs =================================================================== --- Website/App_Code/Users.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/App_Code/Users.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -250,6 +250,11 @@ return true; } + + public static void DeleteUser(int userID) + { + return; + } } /// <summary> Modified: Website/Includes/Administration.ascx =================================================================== --- Website/Includes/Administration.ascx 2006-08-09 23:03:50 UTC (rev 294) +++ Website/Includes/Administration.ascx 2006-08-10 14:13:50 UTC (rev 295) @@ -11,8 +11,8 @@ </b></b> <div class="xboxcontent"> <div class="button"> - <asp:LinkButton ID="newProduct" runat="server" PostBackUrl="~/Product.aspx?mode=new" - OnInit="newProduct_Init"> + <asp:LinkButton ID="newProduct" runat="server" + OnInit="newProduct_Init" CommandName="new" OnCommand="Product_Command"> <asp:Image ID="newProductIcon" runat="server" SkinID="newProductImage" AlternateText="New Product" />New Product</asp:LinkButton> </div> @@ -23,25 +23,21 @@ <div class="pulldown"> <label> For:</label> - <asp:DropDownList runat="server" ID="testing"> - <asp:ListItem Text="Quest management Xtensions for MOM" Value="1"></asp:ListItem> + <asp:DropDownList runat="server" ID="productList" AutoPostBack="True" OnInit="productList_Init" OnSelectedIndexChanged="productList_SelectedIndexChanged"> </asp:DropDownList> </div> <div class="button"> - <asp:LinkButton ID="viewProduct" runat="server" PostBackUrl="~/Product.aspx?mode=view" - OnInit="viewProduct_Init"> + <asp:LinkButton ID="viewProduct" runat="server" CommandName="view" OnCommand="Product_Command"> <asp:Image ID="viewProductIcon" runat="server" SkinID="viewProductImage" AlternateText="Edit Product" />View Product</asp:LinkButton> </div> <div class="button"> - <asp:LinkButton ID="editProduct" runat="server" PostBackUrl="~/Product.aspx?mode=edit" - OnInit="editProduct_Init"> + <asp:LinkButton ID="editProduct" runat="server" CommandName="edit" OnCommand="Product_Command"> <asp:Image ID="editProductIcon" runat="server" SkinID="editProductImage" AlternateText="Edit Product" />Edit Product</asp:LinkButton> </div> <div class="button"> - <asp:LinkButton ID="deleteProduct" runat="server" PostBackUrl="~/Product.aspx?mode=delete" - OnInit="deleteProduct_Init"> + <asp:LinkButton ID="deleteProduct" runat="server" CommandName="delete" OnCommand="Product_Command"> <asp:Image ID="deleteProductIcon" runat="server" SkinID="deleteProductImage" AlternateText="Edit Product" />Delete Product</asp:LinkButton> </div> @@ -62,12 +58,12 @@ </b></b> <div class="xboxcontent"> <div class="button"> - <asp:LinkButton ID="newUser" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new" - OnInit="newUser_Init"> + <asp:LinkButton ID="newUser" runat="server" + OnInit="newUser_Init" CommandName="new" OnCommand="User_Command"> <asp:Image ID="newUserIcon" runat="server" SkinID="newUserImage" AlternateText="New User" />New User</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userRole" runat="server" PostBackUrl="~/AdminRole.aspx" OnInit="userRole_Init"> + <asp:LinkButton ID="userRole" runat="server" OnInit="userRole_Init" CommandName="role" OnCommand="User_Command"> <asp:Image ID="userRoleIcon" runat="server" SkinID="userRoleImage" AlternateText="User Roles" />User Roles</asp:LinkButton></div> <div class="end"> @@ -77,23 +73,22 @@ <div class="pulldown"> <label> For:</label> - <asp:DropDownList runat="server" ID="DropDownList1"> - <asp:ListItem Text="Matthew Hildebrand" Value="1"></asp:ListItem> + <asp:DropDownList runat="server" ID="userList" AutoPostBack="True" OnInit="userList_Init" OnSelectedIndexChanged="userList_SelectedIndexChanged"> </asp:DropDownList> </div> <div class="button"> - <asp:LinkButton ID="userView" runat="server" PostBackUrl="~/UserSettings.aspx?mode=view" - OnInit="viewUser_Init"> + <asp:LinkButton ID="userView" runat="server" + CommandName="view" OnCommand="User_Command"> <asp:Image ID="userViewIcon" runat="server" SkinID="viewUserImage" AlternateText="View User" />View User</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userEdit" runat="server" PostBackUrl="~/UserSettings.aspx?mode=edit" - OnInit="editUser_Init"> + <asp:LinkButton ID="userEdit" runat="server" + CommandName="edit" OnCommand="User_Command"> <asp:Image ID="userEditIcon" runat="server" SkinID="editUserImage" AlternateText="Edit User" />Edit User</asp:LinkButton></div> <div class="button"> - <asp:LinkButton ID="userDelete" runat="server" PostBackUrl="~/UserSettings.aspx?mode=new" - OnInit="deleteUser_Init"> + <asp:LinkButton ID="userDelete" runat="server" + CommandName="delete" OnCommand="User_Command"> <asp:Image ID="userDeleteIcon" runat="server" SkinID="deleteUserImage" AlternateText="Delete User" />Delete User</asp:LinkButton></div> <div class="end"> Modified: Website/Includes/Administration.ascx.cs =================================================================== --- Website/Includes/Administration.ascx.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/Includes/Administration.ascx.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -22,76 +22,169 @@ m_logg.Debug("Loading Administration page"); } + protected void newProduct_Init(object sender, EventArgs e) + { + if (!m_user.HasRight("create_product", Constants.PRODUCT_ANYID)) + newProduct.Visible = false; + } protected void newUser_Init(object sender, EventArgs e) { - LinkButton newUser = (LinkButton)sender; - if (!m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) newUser.Visible = false; } - - protected void viewUser_Init(object sender, EventArgs e) + protected void userRole_Init(object sender, EventArgs e) { - LinkButton viewUser = (LinkButton)sender; - - if (!m_user.HasRight("view_user", Constants.PRODUCT_ANYID)) - viewUser.Visible = false; + if (!m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_other_roles", Constants.PRODUCT_ANYID)) + userRole.Visible = false; } - - protected void editUser_Init(object sender, EventArgs e) + + protected void productList_Init(object sender, EventArgs e) { - LinkButton editUser = (LinkButton)sender; + List<Product> products = ProductDB.GetProductList(active); - if (!m_user.HasRight("edit_user", Constants.PRODUCT_ANYID)) - editUser.Visible = false; - } + foreach (Product product in products) + { + if (!m_user.HasRight("view_product", product.ID)) continue; - protected void deleteUser_Init(object sender, EventArgs e) - { - LinkButton deleteUser = (LinkButton)sender; + ListItem item = new ListItem(product.NAME, product.ID.ToString()); + if (!product.ACTIVE) + item.Attributes.CssStyle.Add("text-decoration", "line-through"); - if (!m_user.HasRight("delete_user", Constants.PRODUCT_ANYID)) - deleteUser.Visible = false; + productList.Items.Add(item); + } + productList_SelectedIndexChanged(sender, e); } - - protected void userRole_Init(object sender, EventArgs e) + protected void productList_SelectedIndexChanged(object sender, EventArgs e) { - LinkButton seeRoles = (LinkButton)sender; + int productID = Convert.ToInt32(productList.SelectedValue); - if (!m_user.HasRight("view_my_roles", Constants.PRODUCT_ANYID) && !m_user.HasRight("view_other_roles", Constants.PRODUCT_ANYID)) - seeRoles.Visible = false; + if (!m_user.HasRight("view_product", productID)) + viewProduct.Visible = false; + else + viewProduct.Visible = true; + if (!m_user.HasRight("edit_product", productID)) + editProduct.Visible = false; + else + editProduct.Visible = true; + if (!m_user.HasRight("delete_product", productID)) + deleteProduct.Visible = false; + else + deleteProduct.Visible = true; } - protected void newProduct_Init(object sender, EventArgs e) + protected void userList_Init(object sender, EventArgs e) { - LinkButton newProduct = (LinkButton)sender; + List<Product> products = ProductDB.GetProductList(active); + List<User> users = UserDB.TCDB_GetUserList(); + + foreach (User user in users) + { + foreach (Product product in products) + { + if (!(m_user.HasRight("view_other_settings")) && + !(user.ID == m_user.ID && m_user.HasRight("view_my_settings", product.ID)) && + !(m_user.HasRight("view_other_settings", user, product.ID))) + continue; - if (!m_user.HasRight("create_product", Constants.PRODUCT_ANYID)) - newProduct.Visible = false; + ListItem item = new ListItem(user.FULLNAME, user.ID.ToString()); + //if (!user.ACTIVE) + //item.Attributes.CssStyle.Add("text-decoration", "line-through"); + + userList.Items.Add(item); + break; + } + } + userList_SelectedIndexChanged(sender, e); } - - protected void editProduct_Init(object sender, EventArgs e) + protected void userList_SelectedIndexChanged(object sender, EventArgs e) { - LinkButton editProduct = (LinkButton)sender; + List<Product> products = ProductDB.GetProductList(active); + User user = UserDB.GetUserInfo(Convert.ToInt32(userList.SelectedValue)); - if (!m_user.HasRight("edit_product", Constants.PRODUCT_ANYID)) - editProduct.Visible = false; + if (user.ID == m_user.ID) + { + userView.Visible = false; + userEdit.Visible = false; + userDelete.Visible = false; + foreach (Product product in products) + { + if (product.ID == Constants.PRODUCT_SITEID) continue; + if (!userView.Visible && m_user.HasRight("view_my_settings", product.ID)) + userView.Visible = true; + if (!userEdit.Visible && m_user.HasRight("edit_my_settings", product.ID)) + userEdit.Visible = true; + } + } + else + { + userView.Visible = false; + userEdit.Visible = false; + userDelete.Visible = true; + foreach (Product product in products) + { + if (product.ID == Constants.PRODUCT_SITEID) continue; + if (user.HasRights(product.ID)) + { + if (!userView.Visible && m_user.HasRight("view_other_settings", product.ID)) + userView.Visible = true; + if (!userEdit.Visible && m_user.HasRight("edit_other_settings", product.ID)) + userEdit.Visible = true; + if (userDelete.Visible && !m_user.HasRight("delete_user", product.ID)) + userDelete.Visible = false; + } + } + } } - - protected void viewProduct_Init(object sender, EventArgs e) + protected void Product_Command(object sender, CommandEventArgs e) { - LinkButton viewProduct = (LinkButton)sender; + int productID = Convert.ToInt32(productList.SelectedValue); - if (!m_user.HasRight("view_product", Constants.PRODUCT_ANYID)) - viewProduct.Visible = false; + switch (e.CommandName) + { + case "view": + Response.Redirect("~/Product.aspx?" + Constants.CODE_PRODUCT + "=" + productID); + break; + case "edit": + Response.Redirect("~/Product.aspx?" + Constants.CODE_MODE + "=edit&" + Constants.CODE_PRODUCT + "=" + productID); + break; + case "delete": + ProductDB.DeleteProduct(productID); + Response.Redirect(Request.RawUrl); + break; + case "new": + Response.Redirect("~/Product.aspx?"+Constants.CODE_MODE+"=new"); + break; + default: + m_logg.Error("Invalid Command: " + e.CommandName); + break; + } } - - protected void deleteProduct_Init(object sender, EventArgs e) + protected void User_Command(object sender, CommandEventArgs e) { - LinkButton deleteProduct = (LinkButton)sender; + int userID = Convert.ToInt32(userList.SelectedValue); - if (!m_user.HasRight("delete_product", Constants.PRODUCT_ANYID)) - deleteProduct.Visible = false; + switch (e.CommandName) + { + case "view": + Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_USER + "=" + userID); + break; + case "edit": + Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_MODE + "=edit&" + Constants.CODE_USER + "=" + userID); + break; + case "delete": + UserDB.DeleteUser(userID); + Response.Redirect(Request.RawUrl); + break; + case "new": + Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_MODE + "=new"); + break; + case "role": + Response.Redirect("~/AdminRole.aspx"); + break; + default: + m_logg.Error("Invalid Command: " + e.CommandName); + break; + } } - } +} } \ No newline at end of file Modified: Website/Includes/AdministrationTree.ascx.cs =================================================================== --- Website/Includes/AdministrationTree.ascx.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/Includes/AdministrationTree.ascx.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -387,15 +387,19 @@ { tcdbDataSetTableAdapters.db_usersTableAdapter uAdapter = new tcdbDataSetTableAdapters.db_usersTableAdapter(); tcdbDataSet.db_usersDataTable uTable = uAdapter.GetData(null, null); + int productID = Convert.ToInt32(parent.Parent.Value); foreach (tcdbDataSet.db_usersRow row in uTable) { - TreeNode child = new TreeNode(); - child.Text = row.fullName; - child.Value = row.userID.ToString(); - child.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_PRODUCT + "=" + Constants.PRODUCT_SITEID + "&" + Constants.CODE_USER + "=" + child.Value; + if (m_user.HasRight("view_other_settings", productID)) + { + TreeNode child = new TreeNode(); + child.Text = row.fullName; + child.Value = row.userID.ToString(); + child.NavigateUrl = "~/UserSettings.aspx?" + Constants.CODE_PRODUCT + "=" + Constants.PRODUCT_SITEID + "&" + Constants.CODE_USER + "=" + child.Value; - parent.ChildNodes.Add(child); + parent.ChildNodes.Add(child); + } } } protected void BuildAllOSList(TreeNode parent) Modified: Website/Includes/Assignments.ascx.cs =================================================================== --- Website/Includes/Assignments.ascx.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/Includes/Assignments.ascx.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -29,10 +29,6 @@ protected void Page_Load(object sender, EventArgs e) { - if (!m_user.ISAUTHENTICATED) - { - return; - } Session.Remove("uid"); Session.Remove("myID"); m_logg.Debug("Loading assignments for [" + m_user.ToString() + "]"); Modified: Website/Includes/Products.ascx.cs =================================================================== --- Website/Includes/Products.ascx.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/Includes/Products.ascx.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -21,7 +21,7 @@ { private static Logger m_logg = new Logger("TCDB.Product"); private int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); - private String mode = HttpContext.Current.Request.QueryString["mode"]; + private String mode = HttpContext.Current.Request.QueryString[Constants.CODE_MODE]; private Product product; protected void Page_Load(object sender, EventArgs e) @@ -42,6 +42,8 @@ // Insert shortcut if (mode == "new" && m_user.HasRight("create_product", Constants.PRODUCT_ANYID)) ProductsView.ChangeMode(FormViewMode.Insert); + else if (mode == "edit" && m_user.HasRight("edit_product", productID)) + ProductsView.ChangeMode(FormViewMode.Edit); else { // Check viewing rights @@ -210,7 +212,7 @@ Label codeLbl = (Label)ProductsView.FindControl("codeLbl"); Label descriptionLbl = (Label)ProductsView.FindControl("descriptionLbl"); - if (m_user.HasRight("edit_product", productID)) + if (!m_user.HasRight("edit_product", productID)) { nameBox.Visible = false; codeBox.Visible = false; Modified: Website/Includes/UserSettings.ascx.cs =================================================================== --- Website/Includes/UserSettings.ascx.cs 2006-08-09 23:03:50 UTC (rev 294) +++ Website/Includes/UserSettings.ascx.cs 2006-08-10 14:13:50 UTC (rev 295) @@ -20,7 +20,7 @@ private static Logger m_logg = new Logger("TCDB.UserSettings"); int userID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_USER]); User user; - String mode = HttpContext.Current.Request.QueryString["mode"]; + String mode = HttpContext.Current.Request.QueryString[Constants.CODE_MODE]; int productID = Convert.ToInt32(HttpContext.Current.Request.QueryString[Constants.CODE_PRODUCT]); protected void Page_Load(object sender, EventArgs e) @@ -32,6 +32,8 @@ m_logg.Debug("Unable to locate user ID in query string. Default to current user"); userID = m_user.ID; } + if (productID == 0) + productID = Constants.PRODUCT_ANYID; // Get user user = UserDB.GetUserInfo(userID); @@ -41,7 +43,7 @@ Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_USER + "=" + m_user.ID); if (userID == m_user.ID && !m_user.HasRight("view_my_settings", productID)) Response.Redirect("~/Assignments.aspx?" + Constants.CODE_USER + "=" + m_user.ID); - if (userID != m_user.ID && !(user.HasRights(productID) && m_user.HasRight("view_other_settings", productID))) + if (userID != m_user.ID && !(m_user.HasRight("view_other_settings", user, productID))) Response.Redirect("~/UserSettings.aspx?" + Constants.CODE_USER + "=" + m_user.ID); // Settings init @@ -51,6 +53,9 @@ if (mode == "new" && m_user.HasRight("create_user", Constants.PRODUCT_ANYID)) UserSettingsView.ChangeMode(FormViewMode.Insert); + else if (mode == "edit" && ((user.ID==m_user.ID && + m_user.HasRight("edit_my_settings",productID)) || (m_user.HasRight("edit_other_settings", user, productID)))) + UserSettingsView.ChangeMode(FormViewMode.Edit); } protected void deleteButton_Load(object sender, EventArgs e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |