mirror of
				https://github.com/janeczku/calibre-web
				synced 2025-10-30 23:03:02 +00:00 
			
		
		
		
	insert into db
connect via LDAP config
This commit is contained in:
		| @@ -47,8 +47,6 @@ SIDEBAR_PUBLISHER = 4096 | ||||
| DEFAULT_PASS = "admin123" | ||||
| DEFAULT_PORT = int(os.environ.get("CALIBRE_PORT", 8083)) | ||||
|  | ||||
| LDAP_PROVIDER_URL = 'ldap://localhost:389/' | ||||
| LDAP_PROTOCOL_VERSION = 3 | ||||
|  | ||||
| class UserBase: | ||||
|  | ||||
| @@ -155,9 +153,12 @@ class UserBase: | ||||
|     def __repr__(self): | ||||
|         return '<User %r>' % self.nickname | ||||
|  | ||||
|     #Login via LDAP method | ||||
|     @staticmethod | ||||
|     def try_login(username, password): | ||||
|         conn = get_ldap_connection() | ||||
|         print "bind : {}".format(config.config_ldap_dn) | ||||
|         print "replace :{}".format(config.config_ldap_dn.replace("%s", username)) | ||||
|         conn.simple_bind_s( | ||||
|              'uid={},ou=users,dc=yunohost,dc=org'.format(username), | ||||
|              password | ||||
| @@ -803,7 +804,8 @@ else: | ||||
|  | ||||
| #get LDAP connection | ||||
| def get_ldap_connection(): | ||||
|     conn = ldap.initialize(LDAP_PROVIDER_URL) | ||||
|     print "login to LDAP server ldap://{}".format(config.config_ldap_provider_url) | ||||
|     conn = ldap.initialize('ldap://{}'.format(config.config_ldap_provider_url)) | ||||
|     return conn | ||||
|  | ||||
| # Generate global Settings Object accessible from every file | ||||
|   | ||||
							
								
								
									
										20
									
								
								cps/web.py
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								cps/web.py
									
									
									
									
									
								
							| @@ -2343,16 +2343,15 @@ def login(): | ||||
|     if request.method == "POST": | ||||
|         form = request.form.to_dict() | ||||
|         user = ub.session.query(ub.User).filter(func.lower(ub.User.nickname) == form['username'].strip().lower()).first() | ||||
|         if config.config_use_ldap and ub.User.try_login(form['username'], form['password']): | ||||
|             try: | ||||
|             app.logger.info("Tryong LDAP connexion") | ||||
|             ub.User.try_login(form['username'], form['password']) | ||||
|                 login_user(user, remember=True) | ||||
|                 flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success") | ||||
|                 return redirect_back(url_for("index")) | ||||
|             except ldap.INVALID_CREDENTIALS: | ||||
|                 ipAdress = request.headers.get('X-Forwarded-For', request.remote_addr) | ||||
|                 app.logger.info('LDAP Login failed for user "' + form['username'] + '" IP-adress: ' + ipAdress) | ||||
|         if user and check_password_hash(user.password, form['password']) and user.nickname is not "Guest" and not user.is_authenticated: | ||||
|         elif user and check_password_hash(user.password, form['password']) and user.nickname is not "Guest" and not user.is_authenticated: | ||||
|             login_user(user, remember=True) | ||||
|             flash(_(u"you are now logged in as: '%(nickname)s'", nickname=user.nickname), category="success") | ||||
|             return redirect_back(url_for("index")) | ||||
| @@ -3075,6 +3074,21 @@ def configuration_helper(origin): | ||||
|         if "config_ebookconverter" in to_save: | ||||
|             content.config_ebookconverter = int(to_save["config_ebookconverter"]) | ||||
|  | ||||
|         #LDAP configuratop, | ||||
|         if "config_use_ldap" in to_save and to_save["config_use_ldap"] == "on": | ||||
|             if not "config_ldap_provider_url" in to_save or not "content.config_ldap_dn" in to_save: | ||||
|                 ub.session.commit() | ||||
|                 flash(_(u'Please enter a LDAP provider and a DN'), category="error") | ||||
|                 return render_title_template("config_edit.html", content=config, origin=origin, | ||||
|                                              gdrive=gdriveutils.gdrive_support, gdriveError=gdriveError, | ||||
|                                              goodreads=goodreads_support, title=_(u"Basic Configuration"), | ||||
|                                              page="config") | ||||
|             else: | ||||
|                 content.config_use_ldap = 1 | ||||
|                 content.config_ldap_provider_url = to_save["config_ldap_provider_url"] | ||||
|                 content.config_ldap_dn = to_save["config_ldap_dn"] | ||||
|                 db_change = True | ||||
|  | ||||
|         # Remote login configuration | ||||
|         content.config_remote_login = ("config_remote_login" in to_save and to_save["config_remote_login"] == "on") | ||||
|         if not content.config_remote_login: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Krakinou
					Krakinou