Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 /*** private ***/
 static bool isLMComUser(Users usr) {
   var tp = (OtherType)usr.OtherType;
   return tp == OtherType.LANGMaster || tp == OtherType.LANGMasterNoEMail;
 }
Esempio n. 3
0
 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,
   };
 }
Esempio n. 4
0
 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;
 }
Esempio n. 5
0
 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 = "*****@*****.**";
Esempio n. 6
0
    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;
    }
Esempio n. 7
0
 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);
 }
Esempio n. 8
0
 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);
     }
   }
 }