Age | Commit message (Collapse) | Author |
|
|
|
|
|
Validation should only happen for new records
User invite code was nil for invalid invite codes
Adding missing tests
|
|
We introduced a count on invite codes to make sure that (at the moment) codes can only be used once. (The code will also allow multi-use codes in the future.)
Also, some of our validations weren't validating against the correct data, which is now fixed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tmp db for test users.
|
|
client_cert_lifespan config option.
|
|
problem creating the account.
|
|
closes #6550
|
|
|
|
|
|
Also move complex identity views into js designs.
Includes test.
Here's how you would query it from outside rails:
```
$ curl
'localhost:5984/identities/_design/Identity/_view/cert_fingerprints_by_expiry?startkey="2014-07-05"'
{"total_rows":4,"offset":1,"rows":[
{"id":"6c9091d4f13eaeaa6062c9d0528fd34d","key":"2014-07-05","value":"fingerprint"},
{"id":"6f3aa93828b4f6978d551f2623b9d103","key":"2014-07-05","value":"fingerprint"},
{"id":"b6cafacfa65042679691cd5065fb19e3","key":"2014-07-07","value":"fp"}
]}
```
Note that the expiry will be used as the key. So you should use the
current data (or yesterday) as the startkey to get all fingerprints that
have not expired yet.
The fingerprint itself is in the value. No need to include docs.
|
|
We used to store the creation date but this way it's easier to query for non expired certs
|
|
Allow admins to unblock handles
|
|
|
|
|
|
There's an identities tab now for admins that will allow unblocking blocked handles. It should be easy to expand for aliases and forwards and other types of actions such as editing.
|
|
the errors on the object if not saved.
|
|
identity errors to user and add identity class hook.
|
|
Identity.new.valid? should not crash. So validate presence where needed and
skip the other validations if the value is absent.
|
|
|
|
errors.each iterates through all errors for all attrbibutes nicely.
|
|
Users now always check if their identity is valid. We need to make
sure this works if the user is a new record and once it has been
persisted.
While the user is a new record the identity will have no user_id.
Old identities that are left to block the login of a user who
canceled their account also have a blank user_id. They still should
render the new identity invalid so the user can't be saved with a
login that has been reserved.
Once the user has been persisted we set the user_id on the identity
and save it too when creating an Account. This allows us to create
a plain user and save it and it will still have an in memory identity
only. But the default is to create the user by means of creating an
account so an identity will be created as well.
|
|
we set it to nil when we disable it
|
|
|
|
|
|
|
|
We create an identity alongside each user. Make sure the identity
is valid when creating the user. This also ensures that the login
picked is available because otherwise the identities address would
not be available anymore.
|
|
hash token with sha512 against timing attacs #3398
|
|
|
|
Only storing the date as that should suffice for normal expiry and is less useful for identifying users by timestamps
|
|
|
|
Email.new(nil) now returns an invalid email rather than crashing.
|
|
stelfox.net/blog/2014/04/calculating-rsa-key-fingerprints-in-ruby/
|
|
use the former if you want a working email account or nil, the
latter if you want the email address associated with a given
user no matter if the user actually has an email account or not.
|
|
We should respect the users choice. We can still get their email from the user id if we really need to.
|
|
preparing for #5664 with some test improvements i ran into this issue
This commit includes a fix and the test improvements. In particular it
adds BrowserIntegrationTest#login - so there is no need to go through the signup procedure everytime you want a user to be logged in.
|
|
cost -> rate
quota -> storage
|
|
if neither limited nor unlimited certs are allowed there will be no prefix. Not sure if this is desired - but it's the way things used to be before the refactoring
|
|
The changes to the configuration required some non minor changes to the platform and also added some flexibility we don't require yet - and thus some new possibilities for errors.
So instead we still use the allow_..._certs and ..._cert_prefix options.
They basically provide the framework in which service levels can operate.
The service level configuration will not include the cert prefix anymore.
It only states if the service level is rate limited or not.
This avoids conflicts between the two configuration options.
I also removed the anonymous service level entirely.
It was also turning a boolean decision (do we provide anonymous eip or not) into something way more complex. Instead I added the AnonymousServiceLevel class to handle the corner cases for people who are not logged in.
Furthermore i renamed the UnauthenticatedUser to AnonymousUser so it matches the Anonymous Service Level nicely. It's also shorter and more intuitive.
|
|
Null Pattern for current_user - use it to get rid of some conditionals
|
|
this still allows us to do current_user.service_level.
Have not gone through the rest of the code yet.
Only made sure logged_in? now tests for is_a? User instead of !!current_user
|
|
:api/service will return a hash of the current users service level
This is failiing if the user is not logged in. Instead it should return the service description for an anonymous user.
|
|
cleaned up all the engine stuff that was never really used.
Afterwards there is not that much left that makes it into the toplevel.
|