Author: sveinung
Date: Sat May 13 23:23:55 2017
New Revision: 35562

URL: http://svn.gna.org/viewcvs/freeciv?rev=35562&view=rev
Log:
Setting visibility to access level checker.

Make it possible to check if a server setting is visible to any player with
a certain access level rather than checking if a server setting is visible
to a specific player (based on his access level).

See hrm Feature #659408

Modified:
    trunk/server/settings.c
    trunk/server/settings.h

Modified: trunk/server/settings.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/settings.c?rev=35562&r1=35561&r2=35562&view=diff
==============================================================================
--- trunk/server/settings.c     (original)
+++ trunk/server/settings.c     Sat May 13 23:23:55 2017
@@ -3124,6 +3124,16 @@
 }
 
 /****************************************************************************
+  Returns whether the specified server setting (option) can be seen by a
+  caller with the specified access level.
+****************************************************************************/
+bool setting_is_visible_at_level(const struct setting *pset,
+                                 enum cmdlevel plevel)
+{
+  return (plevel >= pset->access_level_read);
+}
+
+/****************************************************************************
   Returns whether the specified server setting (option) can be seen by the
   caller.
 ****************************************************************************/
@@ -3131,7 +3141,7 @@
                         struct connection *caller)
 {
   return (!caller
-          || caller->access_level >= pset->access_level_read);
+          || setting_is_visible_at_level(pset, caller->access_level));
 }
 
 /****************************************************************************

Modified: trunk/server/settings.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/settings.h?rev=35562&r1=35561&r2=35562&view=diff
==============================================================================
--- trunk/server/settings.h     (original)
+++ trunk/server/settings.h     Sat May 13 23:23:55 2017
@@ -92,6 +92,8 @@
 bool setting_is_changeable(const struct setting *pset,
                            struct connection *caller, char *reject_msg,
                            size_t reject_msg_len);
+bool setting_is_visible_at_level(const struct setting *pset,
+                                 enum cmdlevel plevel);
 bool setting_is_visible(const struct setting *pset,
                         struct connection *caller);
 


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to