private static void SetDeafaultUser(CMSDatabase db) { bool createUser = false; if (db.Users.Count() == 0) { createUser = true; } else { createUser = true; foreach (var user in db.Users.ToArray()) { user.UserType = db.UserTypes.FirstOrDefault(ut => ut.ID == user.UserTypeID); if (user.UserType.AccessLevel == AccessLevel.VeryHigh) { createUser = false; break; } } } if (createUser) { UserType userType = db.UserTypes.FirstOrDefault(ut => ut.AccessLevel == AccessLevel.VeryHigh); User user = new User { Login = "******", Password = SecurityFunctions.GetPasswordHash("admin"), UserType = userType, IdleTime = 10 }; db.Users.Add(user); db.SaveChanges(); } }
public static void EditUserData(CMSDatabase db, UserModel model, HttpContext context, out int statusCode) { if (!model.ID.HasValue || !CorrectLogin(model.Login) || (!string.IsNullOrEmpty(model.NewPassword) && !CorrectPassword(model.NewPassword)) || model.IdleTime < 10 || model.IdleTime > 10080 ) { statusCode = 422; return; } User editableUser = db.Users.FirstOrDefault(u => u.ID == model.ID.Value); if (editableUser == null) { statusCode = 404; return; } else if (editableUser != context.Items["User"] as User || !editableUser.Password.Equals(SecurityFunctions.GetPasswordHash(model.CurrentPassword))) { statusCode = 403; return; } else if (!editableUser.Login.Equals(model.Login, StringComparison.Ordinal) && db.Users.FirstOrDefault(u => u.Login.Equals(model.Login, StringComparison.Ordinal)) != null) { statusCode = 409; return; } editableUser.Login = model.Login; if (!string.IsNullOrEmpty(model.NewPassword)) { editableUser.Password = SecurityFunctions.GetPasswordHash(model.NewPassword); } editableUser.IdleTime = model.IdleTime; editableUser.Email = model.Email; db.SaveChanges(); statusCode = 200; LogManagementFunctions.AddAdminPanelLog( db: db, context: context, info: $"{(context.Items["LogLocalization"] as IAdminPanelLogLocalization)?.UserDataEdited}" ); }
public static void AddUser(CMSDatabase db, UserModel model, HttpContext context, out int statusCode) { if (!CorrectLogin(model.Login) || !CorrectPassword(model.NewPassword) || !model.UserTypeId.HasValue || db.UserTypes.FirstOrDefault(ut => ut.ID == model.UserTypeId.Value) == null) { statusCode = 422; return; } if (db.Users.AsNoTracking().FirstOrDefault(u => u.Login.Equals(model.Login, StringComparison.Ordinal)) != null) { statusCode = 409; return; } User user = new User { Login = model.Login, Password = SecurityFunctions.GetPasswordHash(model.NewPassword), IdleTime = 10, UserTypeID = model.UserTypeId.Value }; try { db.Users.Add(user); } catch (DbUpdateException) { statusCode = 409; return; } db.SaveChanges(); statusCode = 201; LogManagementFunctions.AddAdminPanelLog( db: db, context: context, info: $"{user.Login} (ID-{user.ID.ToString()}): {(context.Items["LogLocalization"] as IAdminPanelLogLocalization)?.UserAdded}" ); }