public HttpResponseMessage Post([FromBody] UserSignInViewModel model)
        {
            TdIdentityContext context = new TdIdentityContext();
            var          userStore    = new UserStore <TicketDeskUser>(context);
            var          roleStore    = new RoleStore <TicketDeskRole>(context);
            var          userManager  = new TicketDeskUserManager(userStore);
            var          roleManager  = new TicketDeskRoleManager(roleStore);
            IOwinContext context1     = HttpContext.Current.GetOwinContext();

            //UserSignInViewModel model = new UserSignInViewModel();
            //model.UserNameOrEmail = "*****@*****.**";
            //model.Password = "******";
            //model.RememberMe = false;
            HttpResponseMessage     result;
            TicketDeskSignInManager signinmanager = new TicketDeskSignInManager(userManager, context1.Authentication);
            TdDomainContext         domain        = new TdDomainContext(null);
            UserController          controller    = new UserController(userManager, signinmanager, domain);

            controller.SignInApi(model, "");

            //var response = Request.CreateResponse(HttpStatusCode.Moved);
            //response.Headers.Location = new Uri("https://localhost:44373/ticket/new") ;
            //return response;
            result = Request.CreateResponse(HttpStatusCode.OK, "https://localhost:44373/ticket/new");
            return(result);
            //var employee = "Megha";
            //if (employee == null)
            //{
            //	return NotFound();
            //}
            //return Ok(employee);
        }
Example #2
0
        public static void RemoveIdentity(TdIdentityContext context, string currentUserId)
        {
            //kill all users and roles except current user
            foreach (var user in context.Users.Where(u => !u.Id.Equals(currentUserId, StringComparison.InvariantCultureIgnoreCase)))
            {
                context.Users.Remove(user);
            }
            foreach (var role in context.Roles)
            {
                context.Roles.Remove(role);
            }
            context.SaveChanges();

            //re-make the default roles
            Configuration.InitializeStockRoles(context);

            //put the current user back in the admin role
            var userStore   = new UserStore <TicketDeskUser>(context);
            var userManager = new TicketDeskUserManager(userStore);
            var currentUser = userManager.FindById(currentUserId);

            if (!userManager.IsInRole(currentUser.Id, "TdAdministrators"))
            {
                userManager.AddToRole(currentUser.Id, "TdAdministrators");
            }
            context.SaveChanges();
        }
        /// <summary>
        /// Migrates the users and roles from a legacy database to the new TD 2.5 schema.
        /// </summary>
        /// <param name="context">The identity database context</param>
        /// <param name="userManager">The user manager.</param>
        /// <param name="roleManager">The role manager.</param>
        /// <returns><c>true</c> if users migrated, <c>false</c> otherwise.</returns>
        public static bool MigrateSecurity(TdIdentityContext context, TicketDeskUserManager userManager, TicketDeskRoleManager roleManager)
        {
            roleManager.EnsureDefaultRolesExist();
            var appId =
                context.Database.SqlQuery <Guid>(
                    "select ApplicationId from aspnet_Applications where ApplicationName = 'TicketDesk'").First().ToString();
            var users = context.Database.SqlQuery <LegacyUser>(
                "select UserId, Email, Password, PasswordFormat, Comment from aspnet_Membership where ApplicationId = '" + appId + "' and IsApproved = 1 and IsLockedOut = 0").ToList();
            const string roleQuery = "SELECT r.RoleName FROM aspnet_UsersInRoles u inner join aspnet_Roles r on u.RoleId = r.RoleId WHERE u.UserId = @userId and r.ApplicationId = @appId";

            foreach (var user in users)
            {
                var newUser = new TicketDeskUser
                {
                    UserName    = user.Email,
                    Email       = user.Email,
                    DisplayName = user.Comment,
                };

                var result = user.PasswordFormat == 0 ?
                             userManager.Create(newUser, user.Password) :
                             userManager.Create(newUser);

                if (result.Succeeded)
                {
                    var rolesForUser =
                        context.Database.SqlQuery <string>(roleQuery,
                                                           new SqlParameter("userId", user.UserId),
                                                           new SqlParameter("appId", appId));
                    var newRoles = new List <string>();
                    foreach (var role in rolesForUser)
                    {
                        switch (role.ToLowerInvariant())
                        {
                        case "administrators":
                            newRoles.Add("TdAdministrators");
                            break;

                        case "helpdesk":
                            newRoles.Add("TdHelpDeskUsers");
                            break;

                        case "ticketsubmitters":
                            newRoles.Add("TdInternalUsers");
                            break;

                        default:
                            newRoles.Add("TdPendingUsers");
                            break;
                        }
                    }
                    userManager.AddToRoles(newUser.Id, newRoles.ToArray());
                }
            }
            return(true);
        }
Example #4
0
        public static void SetupDemoIdentityData(TdIdentityContext context, string currentUserId)
        {
            var userStore   = new UserStore <TicketDeskUser>(context);
            var roleStore   = new RoleStore <TicketDeskRole>(context);
            var userManager = new TicketDeskUserManager(userStore);
            var roleManager = new TicketDeskRoleManager(roleStore);

            roleManager.EnsureDefaultRolesExist();


            var staff = new TicketDeskUser {
                Id = "72bdddfb-805a-4883-94b9-aa494f5f52dc", UserName = "******", Email = "*****@*****.**", DisplayName = "HelpDesk User"
            };
            var reguser = new TicketDeskUser {
                Id = "17f78f38-fa68-445f-90de-38896140db28", UserName = "******", Email = "*****@*****.**", DisplayName = "Regular User"
            };
            var users = new List <TicketDeskUser> {
                staff, reguser
            };
            var rolesNames = new Dictionary <string, string[]>
            {
                { "*****@*****.**", new[] { "TdHelpDeskUsers" } },
                { "*****@*****.**", new[] { "TdInternalUsers" } }
            };

            if (currentUserId == null && userManager.FindByName("*****@*****.**") == null)
            {
                users.Add(new TicketDeskUser
                {
                    Id          = "64165817-9cb5-472f-8bfb-6a35ca54be6a",
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    DisplayName = "Admin User"
                });
                rolesNames.Add("*****@*****.**", new[] { "TdAdministrators" });
            }


            foreach (var tdUser in users)
            {
                var user = userManager.FindById(tdUser.Id);
                if (user != null)
                {
                    userManager.Delete(user);
                }
                user = tdUser;
                userManager.Create(user, "123456");

                var rnames       = rolesNames[user.UserName];
                var rolesForUser = userManager.GetRoles(user.Id);
                foreach (var rname in rnames.Where(rname => !rolesForUser.Contains(rname)))
                {
                    userManager.AddToRole(user.Id, rname);
                }
            }
        }
        /// <summary>
        /// Migrates the users and roles from a legacy database to the new TD 2.5 schema.
        /// </summary>
        /// <param name="context">The identity database context</param>
        /// <param name="userManager">The user manager.</param>
        /// <param name="roleManager">The role manager.</param>
        /// <returns><c>true</c> if users migrated, <c>false</c> otherwise.</returns>
        public static bool MigrateSecurity(TdIdentityContext context, TicketDeskUserManager userManager, TicketDeskRoleManager roleManager)
        {
            roleManager.EnsureDefaultRolesExist();
            var appId =
                context.Database.SqlQuery<Guid>(
                    "select ApplicationId from aspnet_Applications where ApplicationName = 'TicketDesk'").First().ToString();
            var users = context.Database.SqlQuery<LegacyUser>(
                "select UserId, Email, Password, PasswordFormat, Comment from aspnet_Membership where ApplicationId = '" + appId + "' and IsApproved = 1 and IsLockedOut = 0").ToList();
            const string roleQuery = "SELECT r.RoleName FROM aspnet_UsersInRoles u inner join aspnet_Roles r on u.RoleId = r.RoleId WHERE u.UserId = @userId and r.ApplicationId = @appId";

            foreach (var user in users)
            {
                var newUser = new TicketDeskUser
                {
                    UserName = user.Email,
                    Email = user.Email,
                    DisplayName = user.Comment,
                };

                var result = user.PasswordFormat == 0 ?
                    userManager.Create(newUser, user.Password) :
                    userManager.Create(newUser);

                if (result.Succeeded)
                {
                    var rolesForUser =
                        context.Database.SqlQuery<string>(roleQuery,
                        new SqlParameter("userId", user.UserId),
                        new SqlParameter("appId", appId));
                    var newRoles = new List<string>();
                    foreach (var role in rolesForUser)
                    {
                        switch (role.ToLowerInvariant())
                        {
                            case "administrators":
                                newRoles.Add("TdAdministrators");
                                break;
                            case "helpdesk":
                                newRoles.Add("TdHelpDeskUsers");
                                break;
                            case "ticketsubmitters":
                                newRoles.Add("TdInternalUsers");
                                break;
                            default:
                                newRoles.Add("TdPendingUsers");
                                break;
                        }
                    }
                    userManager.AddToRoles(newUser.Id, newRoles.ToArray());
                }
            }
            return true;
        }
        public static void RemoveAllIdentity(TdIdentityContext context)
        {
            foreach (var user in context.Users)
            {
                context.Users.Remove(user);
            }
            foreach (var role in context.Roles)
            {
                context.Roles.Remove(role);
            }
            context.SaveChanges();

            Configuration.InitializeStockUsers(context);
            context.SaveChanges();
        }
        public static void RemoveAllIdentity(TdIdentityContext context)
        {
            foreach (var user in context.Users)
            {
                context.Users.Remove(user);
            }
            foreach (var role in context.Roles)
            {
                context.Roles.Remove(role);
            }
            context.SaveChanges();

            Configuration.InitializeStockUsers(context);
            context.SaveChanges();
        }
        public static void SetupDemoIdentityData(TdIdentityContext context)
        {
            var userStore = new UserStore<TicketDeskUser>(context);
            var roleStore = new RoleStore<TicketDeskRole>(context);
            var userManager = new TicketDeskUserManager(userStore);
            var roleManager = new TicketDeskRoleManager(roleStore);

            roleManager.EnsureDefaultRolesExist();

            var admin = new TicketDeskUser { Id = "64165817-9cb5-472f-8bfb-6a35ca54be6a", UserName = "******", Email = "*****@*****.**", DisplayName = "Admin User" };
            var staff = new TicketDeskUser { Id = "72bdddfb-805a-4883-94b9-aa494f5f52dc", UserName = "******", Email = "*****@*****.**", DisplayName = "HelpDesk User" };
            var reguser = new TicketDeskUser { Id = "17f78f38-fa68-445f-90de-38896140db28", UserName = "******", Email = "*****@*****.**", DisplayName = "Regular User" };
            var users = new[] { admin, staff, reguser };
            var rolesNames = new Dictionary<string, string[]>
            {
                {"*****@*****.**", new[] {"TdAdministrators"}},
                {"*****@*****.**", new[] {"TdHelpDeskUsers"}},
                {"*****@*****.**", new[] {"TdInternalUsers"}}
            };
            foreach (var tdUser in users)
            {

                var user = userManager.FindByName(tdUser.UserName);
                if (user == null)
                {
                    user = tdUser;
                    userManager.Create(user, "123456");
                }
                var rnames = rolesNames[user.UserName];
                var rolesForUser = userManager.GetRoles(user.Id);
                foreach (var rname in rnames.Where(rname => !rolesForUser.Contains(rname)))
                {
                    userManager.AddToRole(user.Id, rname);
                }
            }
        }
        public static void RemoveLegacyMembershipObjects(TdIdentityContext context)
        {
            const string script = @"
                drop table aspnet_PersonalizationAllUsers
                drop table aspnet_PersonalizationPerUser
                drop table aspnet_Profile
                drop table aspnet_SchemaVersions
                drop table aspnet_UsersInRoles
                drop table aspnet_WebEvent_Events
                drop table aspnet_Paths
                drop table aspnet_Membership
                drop table aspnet_Roles
                drop table aspnet_Users
                drop table aspnet_Applications

                drop view vw_aspnet_Applications
                drop view vw_aspnet_MembershipUsers
                drop view vw_aspnet_Profiles
                drop view vw_aspnet_Roles
                drop view vw_aspnet_Users
                drop view vw_aspnet_UsersInRoles
                drop view vw_aspnet_WebPartState_Paths
                drop view vw_aspnet_WebPartState_Shared
                drop view vw_aspnet_WebPartState_User

                drop procedure aspnet_AnyDataInTables
                drop procedure aspnet_Applications_CreateApplication
                drop procedure aspnet_CheckSchemaVersion
                drop procedure aspnet_Membership_ChangePasswordQuestionAndAnswer
                drop procedure aspnet_Membership_CreateUser
                drop procedure aspnet_Membership_FindUsersByEmail
                drop procedure aspnet_Membership_FindUsersByName
                drop procedure aspnet_Membership_GetAllUsers
                drop procedure aspnet_Membership_GetNumberOfUsersOnline
                drop procedure aspnet_Membership_GetPassword
                drop procedure aspnet_Membership_GetPasswordWithFormat
                drop procedure aspnet_Membership_GetUserByEmail
                drop procedure aspnet_Membership_GetUserByName
                drop procedure aspnet_Membership_GetUserByUserId
                drop procedure aspnet_Membership_ResetPassword
                drop procedure aspnet_Membership_SetPassword
                drop procedure aspnet_Membership_UnlockUser
                drop procedure aspnet_Membership_UpdateUser
                drop procedure aspnet_Membership_UpdateUserInfo
                drop procedure aspnet_Paths_CreatePath
                drop procedure aspnet_Personalization_GetApplicationId
                drop procedure aspnet_PersonalizationAdministration_DeleteAllState
                drop procedure aspnet_PersonalizationAdministration_FindState
                drop procedure aspnet_PersonalizationAdministration_GetCountOfState
                drop procedure aspnet_PersonalizationAdministration_ResetSharedState
                drop procedure aspnet_PersonalizationAdministration_ResetUserState
                drop procedure aspnet_PersonalizationAllUsers_GetPageSettings
                drop procedure aspnet_PersonalizationAllUsers_ResetPageSettings
                drop procedure aspnet_PersonalizationAllUsers_SetPageSettings
                drop procedure aspnet_PersonalizationPerUser_GetPageSettings
                drop procedure aspnet_PersonalizationPerUser_ResetPageSettings
                drop procedure aspnet_PersonalizationPerUser_SetPageSettings
                drop procedure aspnet_Profile_DeleteInactiveProfiles
                drop procedure aspnet_Profile_DeleteProfiles
                drop procedure aspnet_Profile_GetNumberOfInactiveProfiles
                drop procedure aspnet_Profile_GetProfiles
                drop procedure aspnet_Profile_GetProperties
                drop procedure aspnet_Profile_SetProperties
                drop procedure aspnet_RegisterSchemaVersion
                drop procedure aspnet_Roles_CreateRole
                drop procedure aspnet_Roles_DeleteRole
                drop procedure aspnet_Roles_GetAllRoles
                drop procedure aspnet_Roles_RoleExists
                drop procedure aspnet_Setup_RemoveAllRoleMembers
                drop procedure aspnet_Setup_RestorePermissions
                drop procedure aspnet_UnRegisterSchemaVersion
                drop procedure aspnet_Users_CreateUser
                drop procedure aspnet_Users_DeleteUser
                drop procedure aspnet_UsersInRoles_AddUsersToRoles
                drop procedure aspnet_UsersInRoles_FindUsersInRole
                drop procedure aspnet_UsersInRoles_GetRolesForUser
                drop procedure aspnet_UsersInRoles_GetUsersInRoles
                drop procedure aspnet_UsersInRoles_IsUserInRole
                drop procedure aspnet_UsersInRoles_RemoveUsersFromRoles
                drop procedure aspnet_WebEvent_LogEvent

                drop schema aspnet_Membership_FullAccess
                drop schema aspnet_Membership_BasicAccess
                drop schema aspnet_Membership_ReportingAccess
                drop schema aspnet_Personalization_BasicAccess
                drop schema aspnet_Personalization_FullAccess
                drop schema aspnet_Personalization_ReportingAccess
                drop schema aspnet_Profile_BasicAccess
                drop schema aspnet_Profile_FullAccess
                drop schema aspnet_Profile_ReportingAccess
                drop schema aspnet_Roles_BasicAccess
                drop schema aspnet_Roles_FullAccess
                drop schema aspnet_Roles_ReportingAccess
                drop schema aspnet_WebEvent_FullAccess

                drop role aspnet_Membership_FullAccess
                drop role aspnet_Membership_BasicAccess
                drop role aspnet_Membership_ReportingAccess
                drop role aspnet_Personalization_FullAccess
                drop role aspnet_Personalization_BasicAccess
                drop role aspnet_Personalization_ReportingAccess
                drop role aspnet_Profile_FullAccess
                drop role aspnet_Profile_BasicAccess
                drop role aspnet_Profile_ReportingAccess
                drop role aspnet_Roles_FullAccess
                drop role aspnet_Roles_BasicAccess
                drop role aspnet_Roles_ReportingAccess
                drop role aspnet_WebEvent_FullAccess
            ";

            context.Database.ExecuteSqlCommand(TransactionalBehavior.EnsureTransaction, script);
        }
        public static void RemoveLegacyMembershipObjects(TdIdentityContext context)
        {
            const string script = @"
                drop table aspnet_PersonalizationAllUsers
                drop table aspnet_PersonalizationPerUser
                drop table aspnet_Profile
                drop table aspnet_SchemaVersions
                drop table aspnet_UsersInRoles
                drop table aspnet_WebEvent_Events
                drop table aspnet_Paths
                drop table aspnet_Membership
                drop table aspnet_Roles
                drop table aspnet_Users
                drop table aspnet_Applications

                drop view vw_aspnet_Applications
                drop view vw_aspnet_MembershipUsers
                drop view vw_aspnet_Profiles
                drop view vw_aspnet_Roles
                drop view vw_aspnet_Users
                drop view vw_aspnet_UsersInRoles
                drop view vw_aspnet_WebPartState_Paths
                drop view vw_aspnet_WebPartState_Shared
                drop view vw_aspnet_WebPartState_User

                drop procedure aspnet_AnyDataInTables
                drop procedure aspnet_Applications_CreateApplication
                drop procedure aspnet_CheckSchemaVersion
                drop procedure aspnet_Membership_ChangePasswordQuestionAndAnswer
                drop procedure aspnet_Membership_CreateUser
                drop procedure aspnet_Membership_FindUsersByEmail
                drop procedure aspnet_Membership_FindUsersByName
                drop procedure aspnet_Membership_GetAllUsers
                drop procedure aspnet_Membership_GetNumberOfUsersOnline
                drop procedure aspnet_Membership_GetPassword
                drop procedure aspnet_Membership_GetPasswordWithFormat
                drop procedure aspnet_Membership_GetUserByEmail
                drop procedure aspnet_Membership_GetUserByName
                drop procedure aspnet_Membership_GetUserByUserId
                drop procedure aspnet_Membership_ResetPassword
                drop procedure aspnet_Membership_SetPassword
                drop procedure aspnet_Membership_UnlockUser
                drop procedure aspnet_Membership_UpdateUser
                drop procedure aspnet_Membership_UpdateUserInfo
                drop procedure aspnet_Paths_CreatePath
                drop procedure aspnet_Personalization_GetApplicationId
                drop procedure aspnet_PersonalizationAdministration_DeleteAllState
                drop procedure aspnet_PersonalizationAdministration_FindState
                drop procedure aspnet_PersonalizationAdministration_GetCountOfState
                drop procedure aspnet_PersonalizationAdministration_ResetSharedState
                drop procedure aspnet_PersonalizationAdministration_ResetUserState
                drop procedure aspnet_PersonalizationAllUsers_GetPageSettings
                drop procedure aspnet_PersonalizationAllUsers_ResetPageSettings
                drop procedure aspnet_PersonalizationAllUsers_SetPageSettings
                drop procedure aspnet_PersonalizationPerUser_GetPageSettings
                drop procedure aspnet_PersonalizationPerUser_ResetPageSettings
                drop procedure aspnet_PersonalizationPerUser_SetPageSettings
                drop procedure aspnet_Profile_DeleteInactiveProfiles
                drop procedure aspnet_Profile_DeleteProfiles
                drop procedure aspnet_Profile_GetNumberOfInactiveProfiles
                drop procedure aspnet_Profile_GetProfiles
                drop procedure aspnet_Profile_GetProperties
                drop procedure aspnet_Profile_SetProperties
                drop procedure aspnet_RegisterSchemaVersion
                drop procedure aspnet_Roles_CreateRole
                drop procedure aspnet_Roles_DeleteRole
                drop procedure aspnet_Roles_GetAllRoles
                drop procedure aspnet_Roles_RoleExists
                drop procedure aspnet_Setup_RemoveAllRoleMembers
                drop procedure aspnet_Setup_RestorePermissions
                drop procedure aspnet_UnRegisterSchemaVersion
                drop procedure aspnet_Users_CreateUser
                drop procedure aspnet_Users_DeleteUser
                drop procedure aspnet_UsersInRoles_AddUsersToRoles
                drop procedure aspnet_UsersInRoles_FindUsersInRole
                drop procedure aspnet_UsersInRoles_GetRolesForUser
                drop procedure aspnet_UsersInRoles_GetUsersInRoles
                drop procedure aspnet_UsersInRoles_IsUserInRole
                drop procedure aspnet_UsersInRoles_RemoveUsersFromRoles
                drop procedure aspnet_WebEvent_LogEvent

                drop schema aspnet_Membership_FullAccess
                drop schema aspnet_Membership_BasicAccess
                drop schema aspnet_Membership_ReportingAccess
                drop schema aspnet_Personalization_BasicAccess
                drop schema aspnet_Personalization_FullAccess
                drop schema aspnet_Personalization_ReportingAccess
                drop schema aspnet_Profile_BasicAccess
                drop schema aspnet_Profile_FullAccess
                drop schema aspnet_Profile_ReportingAccess
                drop schema aspnet_Roles_BasicAccess
                drop schema aspnet_Roles_FullAccess
                drop schema aspnet_Roles_ReportingAccess
                drop schema aspnet_WebEvent_FullAccess

                drop role aspnet_Membership_FullAccess
                drop role aspnet_Membership_BasicAccess
                drop role aspnet_Membership_ReportingAccess
                drop role aspnet_Personalization_FullAccess
                drop role aspnet_Personalization_BasicAccess
                drop role aspnet_Personalization_ReportingAccess
                drop role aspnet_Profile_FullAccess
                drop role aspnet_Profile_BasicAccess
                drop role aspnet_Profile_ReportingAccess
                drop role aspnet_Roles_FullAccess
                drop role aspnet_Roles_BasicAccess
                drop role aspnet_Roles_ReportingAccess
                drop role aspnet_WebEvent_FullAccess
            ";

            context.Database.ExecuteSqlCommand(TransactionalBehavior.EnsureTransaction, script);
        }
 public DataManagementController(TdIdentityContext identityContext, TdPushNotificationContext pushNotificationContext, TicketDeskSignInManager signInManager)
 {
     IdentityContext         = identityContext;
     PushNotificationContext = pushNotificationContext;
     SignInManager           = signInManager;
 }
 public DataManagementController(TdIdentityContext identityContext, TdPushNotificationContext pushNotificationContext)
 {
     IdentityContext = identityContext;
     PushNotificationContext = pushNotificationContext;
 }
Example #13
0
 public DataManagementController(TdIdentityContext identityContext, TdPushNotificationContext pushNotificationContext)
 {
     IdentityContext         = identityContext;
     PushNotificationContext = pushNotificationContext;
 }