Оповещение о редактировании сетки в зависимости от разрешения

1

У меня есть gridview с параметром редактирования в начале строки. Также я поддерживаю отдельную таблицу под названием "Разрешение", в которой я поддерживаю разрешения пользователей. У меня есть три разных типа разрешений, таких как Admin, Leads, Programmers. Все эти три будут иметь доступ к gridview. За исключением admin, если кто-то пытается отредактировать gridview при нажатии на параметр редактирования, мне нужно дать предупреждение, например, This row has important validation and make sure you make proper changes.

Когда я редактирую, действие происходит в таблице под названием Application. В таблице есть столбец " Comments. Также предупреждение должно происходить только тогда, когда они пытаются редактировать строки, в которых столбец "Комментарии" имеет эти значения.

ManLog datas Funding Approved Exported Applications

Моя попытка до сих пор.

public bool IsApplicationUser(string userName)
{
    return CheckUser(userName);
}

public static bool CheckUser(string userName)
{
    string CS = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    DataTable dt = new DataTable();
    using (SqlConnection connection = new SqlConnection(CS))
    {
        SqlCommand command = new SqlCommand();
        command.Connection = connection;
        string strquery = "select * from Permissions where AppCode='Nest' and UserID = '" + userName + "'";
        SqlCommand cmd = new SqlCommand(strquery, connection);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
    }
    if (dt.Rows.Count >= 1)
        return true;
    else
        return true;
}

 protected void Details_RowCommand(object sender, GridViewCommandEventArgs e)
{
    string currentUser = HttpContext.Current.Request.LogonUserIdentity.Name;
    string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    string[] words = currentUser.Split('\\');
    currentUser = words[1];
    bool appuser = IsApplicationUser(currentUser);
    if (appuser)
    {
        DataSet ds = new DataSet();
        using (SqlConnection connection = new SqlConnection(str))
        {
            SqlCommand command = new SqlCommand();
            command.Connection = connection;
            string strquery = "select Role_Cd from User_Role where AppCode='PM' and UserID = '" + currentUser + "'";
            SqlCommand cmd = new SqlCommand(strquery, connection);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
        }

        if (e.CommandName.Equals("Edit") && ds.Tables[0].Rows[0]["Role_Cd"].ToString().Trim() != "ADMIN")
        {
            int index = Convert.ToInt32(e.CommandArgument);

            GridView gvCurrentGrid = (GridView)sender;
            GridViewRow row = gvCurrentGrid.Rows[index];

            string strID = ((Label)row.FindControl("lblID")).Text;
            string strAppName = ((Label)row.FindControl("lblAppName")).Text;
            Response.Redirect("AddApplication.aspx?ID=" + strID + "&AppName=" + strAppName + "&Edit=True");
        }
    }
}

Пожалуйста, дайте мне знать, если мне нужно что-то добавить. Спасибо за любые предложения.

Теги:
c#-4.0
gridview

1 ответ

1
public static bool CheckUserAdminOrNot(your arguments)
{
    string currentUser = HttpContext.Current.Request.LogonUserIdentity.Name;
    string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    string[] words = currentUser.Split('\\');
    currentUser = words[1];
    bool appuser = IsApplicationUser(currentUser);
    if (appuser)
    {
        DataSet ds = new DataSet();
        using (SqlConnection connection = new SqlConnection(str))
        {
            SqlCommand command = new SqlCommand();
            command.Connection = connection;
            string strquery = "select Role_Cd from User_Role where AppCode='PM' and UserID = '" + currentUser + "'";
            SqlCommand cmd = new SqlCommand(strquery, connection);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
        }

        if(user is not Admin)

            return string that you want....
        }
    }
}

После этого вы получите ответ в ajax, используя этот ответ и перенаправите страницу и передайте значение в URL-адресе, который вы хотите...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню