@@ -159,26 +159,31 @@ public function new(array $data)
159159 ]);
160160 $ key ->save ();
161161
162- foreach ($ data ['permissions ' ] as $ permNode ) {
163- if (!strpos ($ permNode , ': ' )) continue ;
164-
165- list ($ toss , $ permission ) = explode (': ' , $ permNode );
166- if (in_array ('api.user. ' . $ permission , $ this ->permissions ['user ' ])) {
167- $ model = new Models \APIPermission ;
168- $ model ->fill ([
169- 'key_id ' => $ key ->id ,
170- 'permission ' => 'api.user. ' . $ permission
171- ]);
172- $ model ->save ();
162+ $ totalPermissions = 0 ;
163+ if (isset ($ data ['permissions ' ])) {
164+ foreach ($ data ['permissions ' ] as $ permNode ) {
165+ if (!strpos ($ permNode , ': ' )) continue ;
166+
167+ list ($ toss , $ permission ) = explode (': ' , $ permNode );
168+ if (in_array ($ permission , $ this ->permissions ['user ' ])) {
169+ $ totalPermissions ++;
170+ $ model = new Models \APIPermission ;
171+ $ model ->fill ([
172+ 'key_id ' => $ key ->id ,
173+ 'permission ' => 'api.user. ' . $ permission
174+ ]);
175+ $ model ->save ();
176+ }
173177 }
174178 }
175179
176- if ($ this ->user ->root_admin === 1 ) {
177- foreach ($ data ['permissions ' ] as $ permNode ) {
180+ if ($ this ->user ->root_admin === 1 && isset ( $ data [ ' adminPermissions ' ]) ) {
181+ foreach ($ data ['adminPermissions ' ] as $ permNode ) {
178182 if (!strpos ($ permNode , ': ' )) continue ;
179183
180184 list ($ toss , $ permission ) = explode (': ' , $ permNode );
181- if (in_array ('api.admin. ' . $ permission , $ this ->permissions ['admin ' ])) {
185+ if (in_array ($ permission , $ this ->permissions ['admin ' ])) {
186+ $ totalPermissions ++;
182187 $ model = new Models \APIPermission ;
183188 $ model ->fill ([
184189 'key_id ' => $ key ->id ,
@@ -189,6 +194,10 @@ public function new(array $data)
189194 }
190195 }
191196
197+ if ($ totalPermissions < 1 ) {
198+ throw new DisplayException ('No valid permissions were passed. ' );
199+ }
200+
192201 DB ::commit ();
193202 return $ secretKey ;
194203 } catch (\Exception $ ex ) {
0 commit comments