Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package semaphore for openSUSE:Factory 
checked in at 2026-04-13 23:19:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/semaphore (Old)
 and      /work/SRC/openSUSE:Factory/.semaphore.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "semaphore"

Mon Apr 13 23:19:13 2026 rev:40 rq:1346341 version:2.17.36

Changes:
--------
--- /work/SRC/openSUSE:Factory/semaphore/semaphore.changes      2026-04-02 
17:44:53.988565100 +0200
+++ /work/SRC/openSUSE:Factory/.semaphore.new.21863/semaphore.changes   
2026-04-13 23:20:07.999211035 +0200
@@ -1,0 +2,8 @@
+Mon Apr 13 05:09:13 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 2.17.36 (no releases between .33 and .36):
+  * 07b5c05 fix(subscr): show correct message
+  * 6b5a4ae Merge pull request #3754 from
+    semaphoreui/fix/ldap_filter_injection
+
+-------------------------------------------------------------------

Old:
----
  semaphore-2.17.33.obscpio
  web-2.17.33.tar.gz

New:
----
  semaphore-2.17.36.obscpio
  web-2.17.36.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ semaphore.spec ++++++
--- /var/tmp/diff_new_pack.KM7Ok7/_old  2026-04-13 23:20:53.493088871 +0200
+++ /var/tmp/diff_new_pack.KM7Ok7/_new  2026-04-13 23:20:53.493088871 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           semaphore
-Version:        2.17.33
+Version:        2.17.36
 Release:        0
 Summary:        Modern UI for Ansible
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.KM7Ok7/_old  2026-04-13 23:20:53.561091678 +0200
+++ /var/tmp/diff_new_pack.KM7Ok7/_new  2026-04-13 23:20:53.565091842 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/ansible-semaphore/semaphore</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v2.17.33</param>
+    <param name="revision">v2.17.36</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.KM7Ok7/_old  2026-04-13 23:20:53.589092834 +0200
+++ /var/tmp/diff_new_pack.KM7Ok7/_new  2026-04-13 23:20:53.593092998 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/ansible-semaphore/semaphore</param>
-              <param 
name="changesrevision">629fc09c658c4861048cc5411a191476faf53c1b</param></service></servicedata>
+              <param 
name="changesrevision">07b5c059ead248bea4f5713d838b475d97195d86</param></service></servicedata>
 (No newline at EOF)
 

++++++ semaphore-2.17.33.obscpio -> semaphore-2.17.36.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.33/api/login.go 
new/semaphore-2.17.36/api/login.go
--- old/semaphore-2.17.33/api/login.go  2026-04-01 18:15:52.000000000 +0200
+++ new/semaphore-2.17.36/api/login.go  2026-04-12 12:16:04.000000000 +0200
@@ -72,7 +72,7 @@
        searchRequest := ldap.NewSearchRequest(
                util.Config.LdapSearchDN,
                ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
-               fmt.Sprintf(util.Config.LdapSearchFilter, username),
+               fmt.Sprintf(util.Config.LdapSearchFilter, 
ldap.EscapeFilter(username)),
                []string{util.Config.LdapMappings.DN},
                nil,
        )
@@ -105,7 +105,7 @@
        searchRequest = ldap.NewSearchRequest(
                util.Config.LdapSearchDN,
                ldap.ScopeWholeSubtree, ldap.NeverDerefAliases, 0, 0, false,
-               fmt.Sprintf(util.Config.LdapSearchFilter, username),
+               fmt.Sprintf(util.Config.LdapSearchFilter, 
ldap.EscapeFilter(username)),
                []string{util.Config.LdapMappings.DN, 
util.Config.LdapMappings.Mail, util.Config.LdapMappings.UID, 
util.Config.LdapMappings.CN},
                nil,
        )
@@ -333,7 +333,7 @@
                                "context": "ldap",
                                "auth":    login.Auth,
                        }).Warn("Failed to find user in LDAP")
-                       w.WriteHeader(http.StatusInternalServerError)
+                       w.WriteHeader(http.StatusUnauthorized)
                        return
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.33/api/system_info.go 
new/semaphore-2.17.36/api/system_info.go
--- old/semaphore-2.17.33/api/system_info.go    2026-04-01 18:15:52.000000000 
+0200
+++ new/semaphore-2.17.36/api/system_info.go    2026-04-12 12:16:04.000000000 
+0200
@@ -54,17 +54,6 @@
 
        token, err := c.subscriptionService.GetToken()
 
-       if errors.Is(err, db.ErrNotFound) {
-               err = nil
-       }
-
-       if err != nil {
-               log.WithError(err).Error("Failed to get subscription plan")
-               err = nil
-               //http.Error(w, 
http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
-               //return
-       }
-
        switch {
        case errors.Is(err, db.ErrNotFound):
                err = nil
@@ -73,23 +62,28 @@
                log.WithError(err).Error("Failed to get subscription plan")
                err = nil
                plan = ""
-               //http.Error(w, 
http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
                return
        default:
-               plan = token.Plan
+               if token.State == "expired" {
+                       plan = ""
+               } else {
+                       plan = token.Plan
+               }
        }
 
        body := map[string]any{
-               "version":           util.Version(),
-               "ansible":           util.AnsibleVersion(),
-               "web_host":          util.Config.WebHost,
-               "use_remote_runner": util.Config.UseRemoteRunner,
-               "auth_methods":      authMethods,
-               "premium_features":  proFeatures.GetFeatures(user, plan),
-               "git_client":        util.Config.GitClientId,
-               "schedule_timezone": timezone,
-               "teams":             util.Config.Teams,
-               "roles":             roles,
+               "version":             util.Version(),
+               "ansible":             util.AnsibleVersion(),
+               "web_host":            util.Config.WebHost,
+               "use_remote_runner":   util.Config.UseRemoteRunner,
+               "auth_methods":        authMethods,
+               "login_with_password": !util.Config.PasswordLoginDisable,
+               "premium_features":    proFeatures.GetFeatures(user, plan),
+               "subscription_state":  token.State,
+               "git_client":          util.Config.GitClientId,
+               "schedule_timezone":   timezone,
+               "teams":               util.Config.Teams,
+               "roles":               roles,
        }
 
        helpers.WriteJSON(w, http.StatusOK, body)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semaphore-2.17.33/db/sql/SqlDb.go 
new/semaphore-2.17.36/db/sql/SqlDb.go
--- old/semaphore-2.17.33/db/sql/SqlDb.go       2026-04-01 18:15:52.000000000 
+0200
+++ new/semaphore-2.17.36/db/sql/SqlDb.go       2026-04-12 12:16:04.000000000 
+0200
@@ -244,12 +244,12 @@
        if props.IsGlobal {
                return validateMutationResult(
                        d.Exec(
-                               "delete from "+props.TableName+" where 
"+primaryColumnName+"=?",
+                               "delete from "+props.TableName+" where 
`"+primaryColumnName+"`=?",
                                objectID))
        } else {
                return validateMutationResult(
                        d.Exec(
-                               "delete from "+props.TableName+" where 
project_id=? and "+primaryColumnName+"=?",
+                               "delete from "+props.TableName+" where 
project_id=? and `"+primaryColumnName+"`=?",
                                projectID,
                                objectID))
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/semaphore-2.17.33/deployment/docker/runner/Dockerfile 
new/semaphore-2.17.36/deployment/docker/runner/Dockerfile
--- old/semaphore-2.17.33/deployment/docker/runner/Dockerfile   2026-04-01 
18:15:52.000000000 +0200
+++ new/semaphore-2.17.36/deployment/docker/runner/Dockerfile   2026-04-12 
12:16:04.000000000 +0200
@@ -19,7 +19,7 @@
 ARG GH_TOKEN
 
 RUN if [ -n "$APP_BUILD_TYPE" ]; then \
-      git clone 
https://${GH_TOKEN}@github.com/semaphoreui/semaphorepro-module.git pro_impl && \
+      git clone -b 2-17-stable 
https://${GH_TOKEN}@github.com/semaphoreui/semaphorepro-module.git pro_impl && \
       go work init . ./pro_impl; \
     fi
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/semaphore-2.17.33/deployment/docker/server/Dockerfile 
new/semaphore-2.17.36/deployment/docker/server/Dockerfile
--- old/semaphore-2.17.33/deployment/docker/server/Dockerfile   2026-04-01 
18:15:52.000000000 +0200
+++ new/semaphore-2.17.36/deployment/docker/server/Dockerfile   2026-04-12 
12:16:04.000000000 +0200
@@ -19,7 +19,7 @@
 ARG GH_TOKEN
 
 RUN if [ -n "$APP_BUILD_TYPE" ]; then \
-      git clone 
https://${GH_TOKEN}@github.com/semaphoreui/semaphorepro-module.git pro_impl && \
+      git clone -b 2-17-stable 
https://${GH_TOKEN}@github.com/semaphoreui/semaphorepro-module.git pro_impl && \
       go work init . ./pro_impl; \
     fi
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/semaphore-2.17.33/web/src/components/SubscriptionForm.vue 
new/semaphore-2.17.36/web/src/components/SubscriptionForm.vue
--- old/semaphore-2.17.33/web/src/components/SubscriptionForm.vue       
2026-04-01 18:15:52.000000000 +0200
+++ new/semaphore-2.17.36/web/src/components/SubscriptionForm.vue       
2026-04-12 12:16:04.000000000 +0200
@@ -43,6 +43,16 @@
       >
         You {{ item.plan.startsWith('enterprise_') ? 'Enterprise' : 'PRO' }} 
subscription is active.
       </div>
+
+      <div
+        v-else-if="item.state === 'expired'"
+        style="line-height: 1.3; font-weight: bold; color: rgb(188, 0, 0)"
+        class="mb-5"
+      >
+        You {{ item.plan.startsWith('enterprise_') ? 'Enterprise' : 'PRO' }}
+        subscription has expired.
+      </div>
+
       <div v-else style="line-height: 1.3">
         Enter your subscription key to unlock advanced features, or get a new 
one instantly.
       </div>
@@ -60,7 +70,7 @@
         dense
       ></v-textarea>
 
-      <v-menu offset-y v-if="item.state === 'active'">
+      <v-menu offset-y v-if="item.state === 'active' || item.state === 
'expired'">
         <template v-slot:activator="{ on, attrs }">
           <v-btn
             color="primary"
@@ -99,8 +109,6 @@
       <v-btn
         v-else
         color="primary"
-        v-bind="attrs"
-        v-on="on"
         fab
         small
         style="position: absolute; top: 30px; right: -15px"
@@ -208,10 +216,12 @@
                         border-radius: 100px;
                         width: 8px;
                         height: 8px;
-                        background: #00bc00;
                         margin-right: 5px;
                         margin-top: 1px;
                       "
+                      :style="{
+                        backgroundColor: item.state === 'active' ? '#00bc00' : 
'#ff0000'
+                      }"
                     ></div>
                     <div>{{ item.state }}</div>
                   </v-list-item-subtitle>
@@ -243,8 +253,11 @@
           </v-col>
         </v-row>
 
-        <div style="margin-top: 20px; font-weight: bold; color: #00bc00">
-          Renews in {{ (new Date() - new Date(item.expiresAt)) | 
formatMilliseconds }}
+        <div
+          v-if="subscriptionTimeRemainingMs > 0"
+          style="margin-top: 20px; font-weight: bold; color: #00bc00"
+        >
+          Renews in {{ subscriptionTimeRemainingMs | formatMilliseconds }}
           <span>(if auto-renew is activated)</span>
         </div>
       </v-card-text>
@@ -287,6 +300,11 @@
   },
 
   computed: {
+    subscriptionTimeRemainingMs() {
+      const ret = new Date(this.item.expiresAt) - new Date();
+      return ret;
+    },
+
     isNew() {
       return false;
     },

++++++ semaphore.obsinfo ++++++
--- /var/tmp/diff_new_pack.KM7Ok7/_old  2026-04-13 23:20:54.741140386 +0200
+++ /var/tmp/diff_new_pack.KM7Ok7/_new  2026-04-13 23:20:54.749140717 +0200
@@ -1,5 +1,5 @@
 name: semaphore
-version: 2.17.33
-mtime: 1775060152
-commit: 629fc09c658c4861048cc5411a191476faf53c1b
+version: 2.17.36
+mtime: 1775988964
+commit: 07b5c059ead248bea4f5713d838b475d97195d86
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/semaphore/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.semaphore.new.21863/vendor.tar.gz differ: char 150, 
line 2

++++++ web-2.17.33.tar.gz -> web-2.17.36.tar.gz ++++++
/work/SRC/openSUSE:Factory/semaphore/web-2.17.33.tar.gz 
/work/SRC/openSUSE:Factory/.semaphore.new.21863/web-2.17.36.tar.gz differ: char 
32, line 1

Reply via email to