using framework_business;
using framework_library;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Reflection;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Admin_SignIn : System.Web.UI.Page
{
///
/// Page Load Event
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
oSetup _setup = handler.ReturnSetup();
if (!Page.IsPostBack)
{
if (utils.verifySession("user"))
{
oUser admin = (oUser)Session["user"];
if (admin.userType == pNums.UserType.AdminUser.GetHashCode())
{
if (_setup.code == admin.customerCode)
{ Response.Redirect("Admin.aspx", false); }
else if (admin.customerCode == "EVOL-1")//allow on all instances
{ Response.Redirect("Admin.aspx", false); }
}
else
{
Response.Redirect("/home", false);
}
}
if (_setup.logoUploaded != String.Empty)
imgLogo.Src = "~/upload/image/" + _setup.logoUploaded;
}
divGoogleSignIn.Visible = _setup.isGoogleSignIn;
}
///
/// Sign Click
///
///
///
protected void btnLogin_Click(object sender, EventArgs e)
{
bool canProceed = false;
try
{
if (txtEmail.Value == "admin@evolutionsoftware.co.za" && txtPassword.Value == "Blu3Pal3tt3123#987!")
{
oUser admin = new oUser();
admin.customerCode = "EVOL-1";
admin.name = "Palette Admin User";
admin.email = "admin@evolutionsoftware.co.za";
admin.isSetup = true;
admin.recId = -1;
admin.isActive = true;
admin.userType = pNums.UserType.AdminUser.GetHashCode();
Session["user"] = admin;
canProceed = true;
}
else
{
encryption encrypt = new encryption("p@l3tt3");
string email = txtEmail.Value;
//encrypt password
string password = encrypt.encryptValue(txtPassword.Value);
oSetup _setup = handler.ReturnSetup();
foreach (oUser admin in xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "email,password,isActive", email + "," + password + ",1", "", "pal_", true))
{
if (_setup.code == admin.customerCode)
{
Session["user"] = admin;
canProceed = true;
break;
}
else if (admin.customerCode == "EVOL-1")//allow on all instances
{
Session["user"] = admin;
canProceed = true;
break;
}
}
}
if (canProceed)
{
Response.Redirect(GetRedirectPath(),false);
}
else
{
pnlResult.Visible = true;
}
}
catch (Exception ex)
{
exception.HandleException("SignIn:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
private string GetRedirectPath()
{
pnlResult.Visible = false;
oSetup _setup = handler.ReturnSetup(false);
if (!_setup.isWebsite)
{
return "/home";
}
else
{
return "Admin.aspx";
}
}
[WebMethod]
public static string GoogleLogin(string name, string email, string profileId, string givenName, string familyName, string imageURL)
{
try
{
string path = "";
oGoogleUser gUser = new oGoogleUser();
foreach (oGoogleUser guItem in xData.GetTypedByCriteriaSpecific("recId", typeof(oGoogleUser), "email", email, "", "pal_", true))
{
gUser = guItem;
}
gUser.email = email;
gUser.familyName = familyName;
gUser.givenName = givenName;
gUser.imageURL = imageURL;
gUser.name = name;
gUser.profileId = profileId;
oUser user = new oUser();
oSetup setup = handler.ReturnSetup();
foreach (oUser uItem in xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "email,customerCode", email + ",~()" + setup.code + "|" + "EVOL-1", "", "pal_", true))
{
user = uItem;
}
if (user.recId == 0)
{
//do not register unknown users - rather provide message
////register user
//encryption encrypt = new encryption("p@l3tt3");
//user.customerCode = setup.code;
//user.isActive = true;
//user.name = givenName;
//user.surname = familyName;
//user.email = email;
//user.tel = "";
//user.password = encrypt.encryptValue(utils.RandomString(10, true));
////user.isTermsAccepted = chkRegTerms.Checked;
//user.dateCreated = DateTime.Now;
//user.userType = pNums.UserType.WebsiteUser.GetHashCode();
//user.recId = xData.SaveTyped("recId", typeof(oUser), user, "pal_", true);
}
else
{
gUser.userId = user.recId;
HttpContext.Current.Session["user"] = user;
if (gUser.recId > 0)
xData.UpdateTyped("recId", gUser.recId.ToString(), typeof(oGoogleUser), gUser, "pal_", true);
else
gUser.recId = xData.SaveTyped("recId", typeof(oGoogleUser), gUser, "pal_", true);
oSetup _setup = handler.ReturnSetup(false);
if (!_setup.isWebsite)
{
path = "/home";
}
else
{
path = "/Admin.aspx";
}
}
return path;
}
catch (Exception ex)
{
return ex.Message;
}
}
protected void lnkForgot_Click(object sender, EventArgs e)
{
pnlLogin.Visible = false;
pnlForgot.Visible = true;
}
protected void lnkBackToLogin_Click(object sender, EventArgs e)
{
pnlLogin.Visible = true;
pnlForgot.Visible = false;
ScriptManager.RegisterStartupScript(this, GetType(), "renderButton", "renderButton();", true);
}
protected void btnReset_Click(object sender, EventArgs e)
{
string encCode = String.Empty;
bool resetValid = false;
try
{
oSetup _setup = handler.ReturnSetup();
foreach (oUser usrReset in xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "isActive,email,customerCode", "1," + txtResetEmail.Value + "," + _setup.code, "", "pal_", true))
{
resetValid = true;
encryption encReset = new encryption("r3s3t");
usrReset.isReset = true;
usrReset.resetCode = utils.RandomString(6, true);
usrReset.dateUpdated = DateTime.Now;
//update user with reset code and reset status also date updated set as this is used to determine if reset has expirecd
if (xData.UpdateTyped("recId", usrReset.recId.ToString(), typeof(oUser), usrReset, "pal_", true))
{
//encrypt code for resetting
encCode = HttpUtility.UrlEncode(encReset.encryptValue(usrReset.resetCode));
oEmail email = new oEmail();
string resetbody = String.Empty;
string Subject = String.Empty;
foreach (oTemplate resetTemplate in xData.GetTypedByCriteriaSpecific("recId", typeof(oTemplate), "templateTypeId", pNums.TemplateType.OutboundResponse.GetHashCode().ToString()))
{
if (resetTemplate.templateName.ToLower().Contains("reset"))
{
resetbody = resetTemplate.templateContent;
Subject = resetTemplate.templateName;
break;
}
}
//merge internal body with values
resetbody = resetbody.Replace("src=\"/images", "src=\"" + ConfigurationManager.AppSettings["WebAddy"] + "/images");
resetbody = resetbody.Replace("{WebAddress}", ConfigurationManager.AppSettings["WebAddy"]);
resetbody = resetbody.Replace("{encCode}", encCode);
/* CVH 2016-09-13 Use communication email in Company Setup as from email address */
oSetup setup = handler.ReturnSetup();
email.fromAddress = setup.communicationEmail;
email.toAddress = usrReset.email;
email.Body = resetbody;
/* CVH 2016-09-13 Subject shouldn't read "Palette", get from config */
//email.Subject = "Palette - " + Subject;
email.Subject = ConfigurationManager.AppSettings["WebAddy"].Replace("{content}", Subject);
/* CVH 2016-09-13 Set from address display name from Company Setup */
if (communication.SendAnEmail(email, setup.sendingEmailName))
{
lblResultReset.Visible = true;
lblResultReset.Text = "Success: We have sent you further instructions.";
}
}
}
if (!resetValid)
{
lblResultReset.Visible = true;
lblResultReset.Text = "Email address not found.";
}
}
catch (Exception ex)
{
exception.HandleException("Master:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]);
Response.Redirect("/error", false);
}
}
}