def authenticate_with_ldap(self, username, password): ldap_conn = ldap.initialize(current_app.config.get('LDAP_SERVER')) ldap_conn.protocol_version = 3 ldap_conn.set_option(ldap.OPT_REFERRALS, 0) if '@' in username: who = '{0}@{1}'.format( username.split('@')[0], current_app.config.get('LDAP_DOMAIN')) else: who = '{0}@{1}'.format(username, current_app.config.get('LDAP_DOMAIN')) username = username.split('@')[0] user = self.get_by_username(username) try: if not password: raise ldap.INVALID_CREDENTIALS ldap_conn.simple_bind_s(who, password) if not user: from api.lib.perm.acl.user import UserCRUD user = UserCRUD.add(username=username, email=who) return user, True except ldap.INVALID_CREDENTIALS: return user, False
def add_user(user, password, mail, is_admin): """ create a user is_admin: default is False Example: flask add-user -u <username> -p <password> -m <mail> [--is_admin] """ assert user is not None assert password is not None assert mail is not None print((user, password, is_admin)) UserCRUD.add(username=user, password=password, email=mail, is_admin=is_admin)
def del_user(user): """ delete a user Example: flask del-user -u <username> """ assert user is not None from api.models.acl import User u = User.get_by(username=user, first=True, to_dict=False) u and UserCRUD.delete(u.uid)
def get(self): page = get_page(request.values.get('page', 1)) page_size = get_page_size(request.values.get('page_size')) q = request.values.get("q") numfound, users = UserCRUD.search(q, page, page_size) id2parents = RoleRelationCRUD.get_parents(uids=[i.uid for i in users]) users = [i.to_dict() for i in users] for u in users: u.pop('password', None) u.pop('key', None) u.pop('secret', None) return self.jsonify(numfound=numfound, page=page, page_size=page_size, id2parents=id2parents, users=users)
def post(self): key, secret = UserCRUD.reset_key_secret() return self.jsonify(key=key, secret=secret)
def delete(self, uid): UserCRUD.delete(uid) return self.jsonify(uid=uid)
def put(self, uid): user = UserCRUD.update(uid, **request.values) return self.jsonify(user.to_dict())
def post(self): user = UserCRUD.add(**request.values) return self.jsonify(user.to_dict())