completamento gestione controllo accessi x area dati commessa

This commit is contained in:
Samuele Locatelli
2013-09-13 15:07:22 +02:00
parent 0020eb6f77
commit fbb40b8ba1
8 changed files with 345 additions and 31 deletions
+1
View File
@@ -43,6 +43,7 @@
<add key="param" value="nrProto" />
<!--update pagina-->
<add key="intUpdatePagina_ms" value="120000" />
<add key="redirWait" value="5" />
<!--gestione creazione template commesse: cliente abilitato-->
<add key="idxProgettoTemplate" value="2480" />
<!--valori default x risorse-->
@@ -15,14 +15,13 @@
<SortedDescendingHeaderStyle CssClass="sortDescHead" />
<EmptyDataTemplate>
<asp:Button ID="btnNewEmpty" runat="server" OnClick="btnNewEmpty_Click" Text="Ordine Fornitore" CssClass="btnNew"
ToolTip="Aggiungi una nuovo Ordine Fornitore per la commessa" Width="200px" Visible='<%# commessaAttiva %>' />
ToolTip="Aggiungi una nuovo Ordine Fornitore per la commessa" Width="200px" Visible='<%# commessaAttiva && isWritable() %>' />
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false" ItemStyle-VerticalAlign="Middle" ItemStyle-Height="26px" ItemStyle-CssClass="valignMiddle">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="False" CommandName="Edit" ToolTip="Modifica"
ImageUrl="../images/edit_m.png" Visible='<%# commessaAttiva %>' />
ImageUrl="../images/edit_m.png" Visible='<%# commessaAttiva && isWritable() %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="imgUpdate" runat="server" CausesValidation="False" CommandName="Update" ToolTip="Update"
@@ -127,7 +126,7 @@
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false" ItemStyle-CssClass="valignMiddle">
<ItemTemplate>
<asp:ImageButton ID="imgDelete" runat="server" CausesValidation="False" CommandArgument='<%# Eval("idxDCF") %>' CommandName="Delete"
ImageUrl="../images/elimina_s.png" ToolTip="Delete" OnClientClick="return confirm('Confermi eliminazione record?')" Visible='<%# commessaAttiva %>' />
ImageUrl="../images/elimina_s.png" ToolTip="Delete" OnClientClick="return confirm('Confermi eliminazione record?')" Visible='<%# commessaAttiva && isWritable() %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="imgUpdate2" runat="server" CausesValidation="False" CommandName="Update" ImageUrl="../images/apply_s.png"
@@ -137,7 +136,7 @@
</EditItemTemplate>
<HeaderTemplate>
<asp:ImageButton ID="imgBtnNew" runat="server" ToolTip="New" CausesValidation="False" OnClick="btnNew_Click"
ImageUrl="~/images/new_m.png" Visible='<%# commessaAttiva %>' />
ImageUrl="~/images/new_m.png" Visible='<%# commessaAttiva && isWritable() %>' />
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
@@ -20,8 +20,117 @@ namespace PROJ_ETS.WebUserControls
protected void Page_Load(object sender, EventArgs e)
{
}
if (!Page.IsPostBack)
{
PagCorrente();
/// su queste pagine posso andare solo se ho almeno 1 diritto x la pagina corrente ed è soddisfatta almeno 1 condizione:
/// - sono SuperUser
/// - sono SuperReader (ma non posso modificare...)
/// - sono User e sono CC della commessa corrente
/// ...altrimenti redirect a pagina unauthorized
if (!(isPowerUser || isPowerReader || (isUser && isCurrentCC)))
{
utils.obj.setSessionVal("_paginaPrecedente", _paginaCorrente);
Response.Redirect("unauthorized");
}
}
}
/// <summary>
/// pagina corrente (URL finale)
/// </summary>
public string _paginaCorrente { get; set; }
/// <summary>
/// idx commessa corrente
/// </summary>
public int idxFaseSel
{
get
{
return utils.obj.IntSessionObj("idxFase_sel");
}
}
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
/// <summary>
/// risponde alla domanda se l'utente sia CC della commessa corrente
/// </summary>
/// <returns></returns>
public bool isCurrentCC
{
get
{
bool answ = false;
string CapoCommessa = "";
try
{
CapoCommessa = DataProxy_ProjEts.DP.taDC.GetData(idxFaseSel)[0].CapoCommessa;
}
catch
{ }
if (user_std.UtSn.currUserNomeCognome == CapoCommessa || user_std.UtSn.currUserCognomeNome == CapoCommessa)
{
answ = true;
}
return answ;
}
}
/// <summary>
/// risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione
/// </summary>
/// <returns></returns>
public bool isWritable()
{
bool answ = false;
if (_paginaCorrente == null)
{
PagCorrente();
}
answ = user_std.UtSn.isPageWriteEnabled(_paginaCorrente);
return answ;
}
/// <summary>
/// risponde alla domanda se l'utente sia PowerUser
/// </summary>
/// <returns></returns>
public bool isPowerUser
{
get
{
return user_std.UtSn.userHasRight("PowerUser");
}
}
/// <summary>
/// risponde alla domanda se l'utente sia PowerReader
/// </summary>
/// <returns></returns>
public bool isPowerReader
{
get
{
return user_std.UtSn.userHasRight("PowerReader");
}
}
/// <summary>
/// risponde alla domanda se l'utente sia User
/// </summary>
/// <returns></returns>
public bool isUser
{
get
{
return user_std.UtSn.userHasRight("User");
}
}
/// <summary>
/// gestione evento richiesta nuovo valore QUANDO NON CI SIANO RECORDS!
@@ -15,13 +15,13 @@
<SortedDescendingHeaderStyle CssClass="sortDescHead" />
<EmptyDataTemplate>
<asp:Button ID="btnNewEmpty" runat="server" OnClick="btnNewEmpty_Click" Text="Integrazione" CssClass="btnNew"
ToolTip="Aggiungi una integrazione alla commessa" Width="200px" Visible='<%# commessaAttiva %>' />
ToolTip="Aggiungi una integrazione alla commessa" Width="200px" Visible='<%# commessaAttiva && isWritable() %>' />
</EmptyDataTemplate>
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false" ItemStyle-VerticalAlign="Middle" ItemStyle-Height="26px" ItemStyle-CssClass="valignMiddle">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="False" CommandName="Edit" ToolTip="Modifica"
ImageUrl="../images/edit_m.png" Visible='<%# commessaAttiva %>' />
ImageUrl="../images/edit_m.png" Visible='<%# commessaAttiva && isWritable() %>' />
</ItemTemplate>
<EditItemTemplate>
@@ -138,7 +138,7 @@
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false" ItemStyle-CssClass="valignMiddle">
<ItemTemplate>
<asp:ImageButton ID="imgDelete" runat="server" CausesValidation="False" CommandArgument='<%# Eval("idxDCI") %>' CommandName="Delete"
ImageUrl="../images/elimina_s.png" ToolTip="Delete" OnClientClick="return confirm('Confermi eliminazione record?')" Visible='<%# commessaAttiva %>' />
ImageUrl="../images/elimina_s.png" ToolTip="Delete" OnClientClick="return confirm('Confermi eliminazione record?')" Visible='<%# commessaAttiva && isWritable() %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="imgUpdate2" runat="server" CausesValidation="False" CommandName="Update" ImageUrl="../images/apply_s.png"
@@ -147,14 +147,10 @@
ToolTip="Cancel" />
</EditItemTemplate>
<FooterTemplate>
<%--<asp:ImageButton ID="imgInsert2" runat="server" CausesValidation="False" CommandName="Insert" ImageUrl="../images/new_s.png"
OnClick="lblIns_click" ToolTip="Inserisci" />
<asp:ImageButton ID="imgCancel2" runat="server" CausesValidation="False" CommandName="Cancel" ImageUrl="../images/cancel_s.png"
ToolTip="Cancel" />--%>
</FooterTemplate>
<HeaderTemplate>
<asp:ImageButton ID="imgBtnNew" runat="server" ToolTip="New" CausesValidation="False" OnClick="btnNew_Click"
ImageUrl="~/images/new_m.png" Visible='<%# commessaAttiva %>' />
ImageUrl="~/images/new_m.png" Visible='<%# commessaAttiva && isWritable() %>' />
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
@@ -19,7 +19,116 @@ namespace PROJ_ETS.WebUserControls
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PagCorrente();
/// su queste pagine posso andare solo se ho almeno 1 diritto x la pagina corrente ed è soddisfatta almeno 1 condizione:
/// - sono SuperUser
/// - sono SuperReader (ma non posso modificare...)
/// - sono User e sono CC della commessa corrente
/// ...altrimenti redirect a pagina unauthorized
if (!(isPowerUser || isPowerReader || (isUser && isCurrentCC)))
{
utils.obj.setSessionVal("_paginaPrecedente", _paginaCorrente);
Response.Redirect("unauthorized");
}
}
}
/// <summary>
/// pagina corrente (URL finale)
/// </summary>
public string _paginaCorrente { get; set; }
/// <summary>
/// idx commessa corrente
/// </summary>
public int idxFaseSel
{
get
{
return utils.obj.IntSessionObj("idxFase_sel");
}
}
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
/// <summary>
/// risponde alla domanda se l'utente sia CC della commessa corrente
/// </summary>
/// <returns></returns>
public bool isCurrentCC
{
get
{
bool answ = false;
string CapoCommessa = "";
try
{
CapoCommessa = DataProxy_ProjEts.DP.taDC.GetData(idxFaseSel)[0].CapoCommessa;
}
catch
{ }
if (user_std.UtSn.currUserNomeCognome == CapoCommessa || user_std.UtSn.currUserCognomeNome == CapoCommessa)
{
answ = true;
}
return answ;
}
}
/// <summary>
/// risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione
/// </summary>
/// <returns></returns>
public bool isWritable()
{
bool answ = false;
if (_paginaCorrente == null)
{
PagCorrente();
}
answ = user_std.UtSn.isPageWriteEnabled(_paginaCorrente);
return answ;
}
/// <summary>
/// risponde alla domanda se l'utente sia PowerUser
/// </summary>
/// <returns></returns>
public bool isPowerUser
{
get
{
return user_std.UtSn.userHasRight("PowerUser");
}
}
/// <summary>
/// risponde alla domanda se l'utente sia PowerReader
/// </summary>
/// <returns></returns>
public bool isPowerReader
{
get
{
return user_std.UtSn.userHasRight("PowerReader");
}
}
/// <summary>
/// risponde alla domanda se l'utente sia User
/// </summary>
/// <returns></returns>
public bool isUser
{
get
{
return user_std.UtSn.userHasRight("User");
}
}
/// <summary>
@@ -130,8 +130,7 @@
</div>
</div>
<div class="clearDiv" style="border-top: 1px solid #666; background-color: #ECECEC;">
<%--<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" />--%>
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="False" CommandName="Edit" ImageUrl="~/images/edit_m.png" ToolTip="Modifica dati commessa" Visible='<%# commessaAttiva %>' />
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="False" CommandName="Edit" ImageUrl="~/images/edit_m.png" ToolTip="Modifica dati commessa" Visible='<%# commessaAttiva && isWritable() %>' />
</div>
</div>
</ItemTemplate>
@@ -276,8 +275,6 @@
</div>
</div>
<div class="clearDiv" style="border-top: 1px solid #666; background-color: #ECECEC;">
<%--<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" />
&nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel" />--%>
<asp:ImageButton ID="imgUpdate" runat="server" CausesValidation="True" CommandName="Update" ImageUrl="~/images/apply_m.png" ToolTip="Conferma Modifiche" />
&nbsp;<asp:ImageButton ID="imgCancel" runat="server" CausesValidation="False" CommandName="Cancel" ImageUrl="~/images/cancel_m.png" ToolTip="Annulla Modifiche" />
@@ -309,8 +306,3 @@
<div class="clearDiv">
</div>
<asp:ObjectDataSource ID="odsCC" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="ETS_Data.DS_utilsProjEtsTableAdapters.v_selCCTableAdapter"></asp:ObjectDataSource>
<%--<asp:Panel runat="server" ID="cercaDoc">
<uc2:mod_autocomplete ID="acUrlOfferta" runat="server" minCharAutocomplete="3" textEmWidht="11" showKey="false" ServicePath="Services/WS_data.asmx/Protocolli" valore ='<%# Bind("urlOfferta") %>' />
</asp:Panel>--%>
@@ -22,7 +22,7 @@
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-HorizontalAlign="Center" ItemStyle-Wrap="false" ItemStyle-VerticalAlign="Middle">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="False" CommandName="Edit" ToolTip="Modifica" ImageUrl="../images/edit_m.png" Visible='<%# commessaAttiva %>' />
<asp:ImageButton ID="imgEdit" runat="server" CausesValidation="False" CommandName="Edit" ToolTip="Modifica" ImageUrl="../images/edit_m.png" Visible='<%# commessaAttiva && isWritable() %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="imgUpdate" runat="server" CausesValidation="False" CommandName="Update" ToolTip="Update" ImageUrl="../images/apply_m.png" />
@@ -30,7 +30,6 @@
<asp:ImageButton ID="imgCancel" runat="server" CausesValidation="False" CommandName="Cancel" ToolTip="Cancel" ImageUrl="../images/cancel_m.png" />
</EditItemTemplate>
<HeaderTemplate>
<%--<asp:ImageButton ID="imgBtnReset" runat="server" ToolTip="Reset" CausesValidation="False" OnClick="btnReset_Click" ImageUrl="../images/reload_l.png" Visible="true" />--%>
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
@@ -66,7 +65,7 @@
<div class="divSx" style="width: 450px; margin: 0px auto; text-align: center;">
<div>
<div class="divSx" style="width: 45px; text-align: center; margin: 10px auto;">
<asp:ImageButton runat="server" ID="ibtBCWS" ImageUrl="~/Images/calc_xl.png" OnClick="ibtBCWS_Click" CommandArgument='<%# Eval("idxFase") %>' />
<asp:ImageButton runat="server" ID="ibtBCWS" ImageUrl="~/Images/calc_xl.png" OnClick="ibtBCWS_Click" CommandArgument='<%# Eval("idxFase") %>' Visible='<%# isWritable() %>' />
</div>
<div class="divSx" style="width: 135px; text-align: center; margin: auto;">
BCWS
@@ -130,7 +129,7 @@
<div class="divSx" style="width: 450px; margin: 0px auto; text-align: center;">
<div>
<div class="divSx" style="width: 45px; text-align: center; margin: 10px auto;">
<asp:ImageButton runat="server" ID="ibtBCWS" ImageUrl="~/Images/calc_xl.png" OnClick="ibtBCWS_Click" CommandArgument='<%# Eval("idxFase") %>' />
<asp:ImageButton runat="server" ID="ibtBCWS" ImageUrl="~/Images/calc_xl.png" OnClick="ibtBCWS_Click" CommandArgument='<%# Eval("idxFase") %>' Visible='<%# isWritable() %>' />
</div>
<div class="divSx" style="width: 135px; text-align: center; margin: auto;">
BCWS
@@ -206,7 +205,6 @@
<asp:ImageButton ID="imgCancel" runat="server" CausesValidation="False" CommandName="Cancel" ToolTip="Cancel" ImageUrl="../images/cancel_m.png" />
</EditItemTemplate>
<HeaderTemplate>
<%--<asp:ImageButton ID="imgBtnReset" runat="server" ToolTip="Reset" CausesValidation="False" OnClick="btnReset_Click" ImageUrl="../images/reload_l.png" Visible="true" />--%>
</HeaderTemplate>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
@@ -273,4 +271,4 @@
</asp:Panel>
<uc2:mod_navDettComm ID="mod_navDettComm1" runat="server" btn2disable="2" />
<div class="clearDiv">
</div>
</div>
@@ -17,6 +17,116 @@ namespace PROJ_ETS.WebUserControls
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
PagCorrente();
/// su queste pagine posso andare solo se ho almeno 1 diritto x la pagina corrente ed è soddisfatta almeno 1 condizione:
/// - sono SuperUser
/// - sono SuperReader (ma non posso modificare...)
/// - sono User e sono CC della commessa corrente
/// ...altrimenti redirect a pagina unauthorized
if (!(isPowerUser || isPowerReader || (isUser && isCurrentCC)))
{
utils.obj.setSessionVal("_paginaPrecedente", _paginaCorrente);
Response.Redirect("unauthorized");
}
}
}
/// <summary>
/// pagina corrente (URL finale)
/// </summary>
public string _paginaCorrente { get; set; }
/// <summary>
/// idx commessa corrente
/// </summary>
public int idxFaseSel
{
get
{
return utils.obj.IntSessionObj("idxFase_sel");
}
}
/// <summary>
/// salva in variabile pagina il nome della pagina corrente
/// </summary>
protected void PagCorrente()
{
Uri MyUrl = Request.Url;
string delimStr = "/";
char[] delimiter = delimStr.ToCharArray();
string[] finalUrl = MyUrl.LocalPath.ToString().Split(delimiter);
int n = finalUrl.Length;
_paginaCorrente = finalUrl[n - 1].ToString();
}
/// <summary>
/// risponde alla domanda se l'utente sia CC della commessa corrente
/// </summary>
/// <returns></returns>
public bool isCurrentCC
{
get
{
bool answ = false;
string CapoCommessa = "";
try
{
CapoCommessa = DataProxy_ProjEts.DP.taDC.GetData(idxFaseSel)[0].CapoCommessa;
}
catch
{ }
if (user_std.UtSn.currUserNomeCognome == CapoCommessa || user_std.UtSn.currUserCognomeNome == CapoCommessa)
{
answ = true;
}
return answ;
}
}
/// <summary>
/// risponde alla domanda se l'utente abbia permesso tipo writable (S) nel permessi2funzione
/// </summary>
/// <returns></returns>
public bool isWritable()
{
bool answ = false;
if (_paginaCorrente == null)
{
PagCorrente();
}
answ = user_std.UtSn.isPageWriteEnabled(_paginaCorrente);
return answ;
}
/// <summary>
/// risponde alla domanda se l'utente sia PowerUser
/// </summary>
/// <returns></returns>
public bool isPowerUser
{
get
{
return user_std.UtSn.userHasRight("PowerUser");
}
}
/// <summary>
/// risponde alla domanda se l'utente sia PowerReader
/// </summary>
/// <returns></returns>
public bool isPowerReader
{
get
{
return user_std.UtSn.userHasRight("PowerReader");
}
}
/// <summary>
/// risponde alla domanda se l'utente sia User
/// </summary>
/// <returns></returns>
public bool isUser
{
get
{
return user_std.UtSn.userHasRight("User");
}
}
/// <summary>
/// effettua update controllo