예제 #1
0
        public void VerifyUpdateCredentials_Initialization()
        {
            var credentials = new MigrationPasswordCredentials(this.person.Iid, "hashedpassword", "salt");

            Assert.AreEqual("hashedpassword", credentials.Password);
            Assert.AreEqual("salt", credentials.Salt);
            Assert.AreEqual(this.person.Iid, credentials.Iid);
        }
예제 #2
0
        public void VerifyUpdateCredentials_FullAccess()
        {
            var credentials = new MigrationPasswordCredentials(this.person.Iid, "hashedpassword", "salt");

            this.transactionManager.Setup(x => x.IsFullAccessEnabled()).Returns(true);

            this.personDao.Setup(x => x.UpdateCredentials(It.IsAny <NpgsqlTransaction>(), Cdp4TransactionManager.SITE_DIRECTORY_PARTITION, this.person, credentials)).Returns(true);

            Assert.DoesNotThrow(() => this.personService.UpdateCredentials(It.IsAny <NpgsqlTransaction>(), this.schemaName, this.person, credentials));
        }
예제 #3
0
        /// <summary>
        /// Update user credentials after migration
        /// </summary>
        /// <param name="transaction">The database transaction.</param>
        /// <param name="partition">The database schema</param>
        /// <param name="thing">The person <see cref="Thing" /></param>
        /// <param name="credentials">The new credentials from migration.json <see cref="MigrationPasswordCredentials" /></param>
        /// <returns>True if opperation succeeded</returns>
        public bool UpdateCredentials(NpgsqlTransaction transaction, string partition, Thing thing, MigrationPasswordCredentials credentials)
        {
            if (!this.IsInstanceModifyAllowed(transaction, thing, partition, UpdateOperation))
            {
                throw new SecurityException($"The person {this.PermissionService.Credentials.Person.UserName} does not have an appropriate update permission for {thing.GetType().Name}.");
            }

            return(this.PersonDao.UpdateCredentials(transaction, partition, thing as Person, credentials));
        }