static void cookie2user(LMCookieJS cook, Users usr) { var el = new El(cook.EMail, cook.Login); usr.EMail = el.email; usr.FirstName = cook.FirstName; usr.LastName = cook.LastName; usr.Login = el.login; usr.LoginEMail = cook.LoginEMail; usr.OtherType = (short)cook.Type; usr.OtherId = cook.TypeId; usr.OtherData = cook.OtherData; }
/*** private ***/ static bool isLMComUser(Users usr) { var tp = (OtherType)usr.OtherType; return tp == OtherType.LANGMaster || tp == OtherType.LANGMasterNoEMail; }
static LMCookieJS user2cookie(Users usr) { return new LMCookieJS() { id = usr.Id, EMail = usr.EMail, FirstName = usr.FirstName, LastName = usr.LastName, Login = usr.Login, LoginEMail = usr.LoginEMail, Type = (OtherType)usr.OtherType, TypeId = usr.OtherId, OtherData = usr.OtherData, }; }
public static Users PrepareUser(string email, Container db, bool addCompsRole = false) { var res = new Users() { Created = DateTime.UtcNow, EMail = email, VerifyStatus = (short)VerifyStates.prepared, Roles = addCompsRole ? (long)Role.Comps : 0 }; db.Users.Add(res); return res; }
public static Int64 CreateLmUserStart(LMCookieJS cook, string psw) { var db = Lib.CreateContext(); var el = new El(cook.EMail, cook.Login); psw = LowUtils.unpackStr(psw); var usr = db.Users.FirstOrDefault(u => u.EMail == el.email && u.Login == el.login); if (usr != null) switch ((VerifyStates)usr.VerifyStatus) { case VerifyStates.ok: if (usr.OtherType == (short)OtherType.LANGMaster || usr.OtherType == (short)OtherType.LANGMasterNoEMail) return -1; //user already registered else { //zmena z FB, Google apod. login na LM login usr.Password = psw; usr.OtherType = (short)OtherType.LANGMaster; usr.OtherId = null; usr.FirstName = cook.FirstName; usr.LastName = cook.LastName; Lib.SaveChanges(db); return usr.Id; } case VerifyStates.waiting: return usr.Id; case VerifyStates.prepared: usr.Password = psw; usr.VerifyStatus = (short)VerifyStates.waiting; Lib.SaveChanges(db); return usr.Id; } if (usr == null) db.Users.Add(usr = new Users() { Created = DateTime.UtcNow, VerifyStatus = cook.Type == OtherType.LANGMasterNoEMail ? (short)VerifyStates.ok : (short)VerifyStates.waiting, Password = psw, }); if (el.email == masterEMail) { usr.Roles = (Int64)Role.Admin; usr.VerifyStatus = (short)VerifyStates.ok; } cookie2user(cook, usr); Lib.SaveChanges(db); return usr.Id; } const string masterEMail = "*****@*****.**";
public static CmdAdjustScormUserResult OnScormLogin(CmdAdjustScormUser par) { var db = Lib.CreateContext(); par.companyHost = par.companyHost.ToLowerInvariant(); par.login = par.login.ToLowerInvariant(); var login = par.companyHost + "/" + par.login; var usr = db.Users.FirstOrDefault(u => u.Login == login); var comp = db.Companies.Where(c => c.ScormHost == par.companyHost).FirstOrDefault(); CompanyUsers compUser = null; Logger.Log("CmdAdjustScormUserResult Start"); if (usr == null) //adjust user db.Users.Add(usr = new Users() { Created = DateTime.UtcNow, EMail = null, Login = login, FirstName = par.firstName, LastName = par.lastName, LoginEMail = null, OtherId = par.login, OtherType = (short)LMComLib.OtherType.scorm }); else if (comp != null) //comp a user nejsou null => testGlobalAdmin na compuser compUser = db.CompanyUsers.FirstOrDefault(cu => cu.CompanyId == comp.Id && cu.UserId == usr.Id); if (comp == null) //adjust company db.Companies.Add(comp = new Companies() { ScormHost = par.companyHost, Title = par.companyHost, Created = DateTime.UtcNow }); if (compUser == null) //adjust comp user db.CompanyUsers.Add(compUser = new CompanyUsers() { User = usr, Created = DateTime.UtcNow, Company = comp }); else if (par.isNotAttempted) { //compUser existuje a isNotAttempted => vymaz vysledky kurzu Logger.Log("prodId={0}, userId={1}", par.productId, compUser.Id); //foreach (var modData in db.CourseDatas.Where(cd => cd.CourseUser.ProductId == par.productId && cd.CourseUser.email == compUser.compId)) db.CourseDatas.DeleteObject(modData); var crsUser = compUser.CourseUsers.FirstOrDefault(crsUsr => crsUsr.ProductId == par.productId); if (crsUser != null) db.CourseUsers.Remove(crsUser); } Lib.SaveChanges(db); CmdAdjustScormUserResult res = new CmdAdjustScormUserResult() { Cookie = user2cookie(usr), companyId = comp.Id, }; return res; }
public static LMCookieJS OnOtherLogin(OtherType otherType, string otherId, string email, string firstName, string lastName) { var db = Lib.CreateContext(); var el = new El(email, null); var usr = db.Users.FirstOrDefault(u => u.EMail == el.email && u.Login == null); if (usr == null) db.Users.Add(usr = new Users() { EMail = email, Created = DateTime.UtcNow }); usr.VerifyStatus = (short)VerifyStates.ok; usr.OtherType = (short)otherType; usr.OtherId = otherId; usr.FirstName = firstName; usr.LastName = lastName; Lib.SaveChanges(db); return user2cookie(usr); }
static void lmcomAddAdmin(Container db, string email, string password, string firstName, string lastName) { var user = new Users() { EMail = email, Password = password, Created = DateTime.UtcNow, OtherType = 10, FirstName = firstName, LastName = lastName, Roles = (int)Role.All, }; db.Users.Add(user); var company = new Companies() { Title = "Company " + lastName, Created = DateTime.UtcNow }; db.Companies.Add(company); var dep = new CompanyDepartments() { Title = company.Title, Company = company }; db.CompanyDepartments.Add(dep); var compUser = new CompanyUsers() { Company = company, User = user, Created = DateTime.UtcNow/*, RolesEx = (long)CompRole.All*/, CompanyDepartment = dep }; setRolesEx(compUser, (long)CompRole.All); db.CompanyUsers.Add(compUser); //@PRODID string[] ignoreUserLic = new string[] { "/lm/prods_lm_blcourse_english/", "/lm/prods_lm_blcourse_french/", "/lm/prods_lm_blcourse_german/" }; foreach (var prodId in new string[] { //"/data/xmlsource/simpleenglish/", "/data/xmlsource/simplespanish/", //"/data/xmlsource/docexamples/", "/data/xmlsource/TestProduct/", //"/lm/EnglishE_0_10/", "/lm/English_0_10/", "/lm/German_0_5/", "/lm/Spanish_0_6/", "/lm/French_0_6/", "/lm/Italian_0_6/", "/lm/Russian_0_3/", //"/lm/EnglishE_0_1/", "/lm/Spanish_0_1/", //"/grafia/od1_8/", "/grafia/od1_administrativ/", //"/skrivanek/prods/etestme-std/english/a1/", "/skrivanek/prods/etestme-comp/english/a1/", "/skrivanek/prods/etestme-comp/english/all/", //"/skrivanek/prods/etestme-comp/french/all/", //"/skrivanek/prods/etestme-comp/german/all/","/skrivanek/prods/etestme-comp/russian/all/", //"/skrivanek/prods/etestme-comp/italian/all/","/skrivanek/prods/etestme-comp/spanish/all/", //"/lm/prods/etestme/english/a1/", //"/lm/prods/etestme/english/a1_c2/" //Blended "/lm/blcourse/schoolmanager.product/", "/lm/blcourse/langmastermanager.product/", }.Concat(ignoreUserLic).Select(p => p.ToLower())) { var compLicence = new CompanyLicences() { Company = company, Days = 100, ProductId = prodId, Created = DateTime.UtcNow }; db.CompanyLicences.Add(compLicence); var courseUser = new CourseUsers() { CompanyUser = compUser, Created = DateTime.UtcNow, ProductId = prodId }; db.CourseUsers.Add(courseUser); if (!ignoreUserLic.Contains(prodId)) { var userLicence = new UserLicences() { CompanyLicence = compLicence, CourseUser = courseUser, Started = DateTime.UtcNow, Created = DateTime.UtcNow }; db.UserLicences.Add(userLicence); } } }