AccSv

class clink.service.AccSv(authdb_sv, auth_conf)[source]

Manage accounts and related concepts

Parameters:
mk_acc(name, password, email, phone=None)[source]

Create new account

Parameters:
  • name (str) –
  • password (str) –
  • email (str) –
  • phone (str) –
Return type:

bson.objectid.ObjectId

Raises:

TypeError

mk_reg_code(name, password, email, phone=None)[source]

Create a registration code. Use returned code with cf_reg_code() to create account

Parameters:
  • name (str) –
  • password (str) –
  • email (str) –
  • phone (str) –
Return type:

ConfirmCodeSpec

Raises:
cf_reg_code(code)[source]

Use registration code to create account

Parameters:

code (str) –

Return type:

dict

Raises:
find_id(id)[source]

Find account by identity

Parameters:id (bson.objectid.ObjectId) –
Return type:dict
find_name(name)[source]

Find account by name

Parameters:name (str) –
Return type:dict
Raises:TypeError
find_email(email)[source]

Find account by email

Parameters:email (str) –
Return type:dict
Raises:TypeError
find_phone(phone)[source]

Find account by phone number

Parameters:phone (str) –
Return type:dict
Raises:TypeError
find_pwd(name, pwd)[source]

Find account by name and password

Parameters:
  • name (str) –
  • pwd (str) –
Return type:

dict

Raises:

TypeError

rm_acc(id)[source]

Remove account by identity

Parameters:id (bson.objectid.ObjectId) –
ch_pwd(id, new_pwd)[source]

Change password of account by identity

Parameters:
Raises:

TypeError

mk_rpwd_code(email)[source]

Create reset password code from email. Use returned code with cf_rpwd_code() to reset to new password

Parameters:email (str) –
Return type:ConfirmCodeSpec
Raises:TypeError
cf_rpwd_code(code, new_pwd)[source]

Reset password from code

Parameters:
  • code (str) –
  • new_pwd (str) –
Return type:

bson.objectid.ObjectId

Raises:

TypeError

mk_group(group_name)[source]

Create new account group

Parameters:group_name (str) –
rm_group(group_name)[source]

Remove account group

Parameters:group_name (str) –
add_to_group(acc_id, group_name)[source]

Put an account into group

Parameters:
del_fm_group(acc_id, group_name)[source]

Remove an account from group

Parameters:

Example

acc_sv.py
from clink.service import AccSv, AuthDbSv, MongoSv, MongoConf
from clink import AuthConf


mongo_conf = MongoConf('mongodb://localhost', 'book-db')
mongo_sv = MongoSv(mongo_conf)

authdb_sv = AuthDbSv(mongo_sv)

root_pwd = 'root-pwd'
root_email = 'root@mail.com'
root_email_pwd = 'root-email-pwd'
root_email_server = 'smtp.email.com:587'
auth_conf = AuthConf(
    root_pwd, root_email, root_email_pwd, root_email_server,
    'jwt-key'
)

acc_sv = AccSv(authdb_sv, auth_conf)

root_acc = acc_sv.find_pwd('root', root_pwd)
print(root_acc['name'], root_acc['email'], root_acc['last_action'])

Testing

$ python acc_sv.py
root root@mail.com REGISTERED