forked from phoenix/litellm-mirror
make regenerating api keys enterprise
This commit is contained in:
parent
83813af0a2
commit
b0ae0101f4
3 changed files with 35 additions and 6 deletions
|
@ -141,6 +141,7 @@ const CreateKeyPage = () => {
|
||||||
<UserDashboard
|
<UserDashboard
|
||||||
userID={userID}
|
userID={userID}
|
||||||
userRole={userRole}
|
userRole={userRole}
|
||||||
|
premiumUser={premiumUser}
|
||||||
teams={teams}
|
teams={teams}
|
||||||
keys={keys}
|
keys={keys}
|
||||||
setUserRole={setUserRole}
|
setUserRole={setUserRole}
|
||||||
|
@ -175,6 +176,7 @@ const CreateKeyPage = () => {
|
||||||
<UserDashboard
|
<UserDashboard
|
||||||
userID={userID}
|
userID={userID}
|
||||||
userRole={userRole}
|
userRole={userRole}
|
||||||
|
premiumUser={premiumUser}
|
||||||
teams={teams}
|
teams={teams}
|
||||||
keys={keys}
|
keys={keys}
|
||||||
setUserRole={setUserRole}
|
setUserRole={setUserRole}
|
||||||
|
|
|
@ -48,6 +48,7 @@ interface UserDashboardProps {
|
||||||
setKeys: React.Dispatch<React.SetStateAction<Object[] | null>>;
|
setKeys: React.Dispatch<React.SetStateAction<Object[] | null>>;
|
||||||
setProxySettings: React.Dispatch<React.SetStateAction<any>>;
|
setProxySettings: React.Dispatch<React.SetStateAction<any>>;
|
||||||
proxySettings: any;
|
proxySettings: any;
|
||||||
|
premiumUser: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
type TeamInterface = {
|
type TeamInterface = {
|
||||||
|
@ -68,6 +69,7 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
||||||
setKeys,
|
setKeys,
|
||||||
setProxySettings,
|
setProxySettings,
|
||||||
proxySettings,
|
proxySettings,
|
||||||
|
premiumUser,
|
||||||
}) => {
|
}) => {
|
||||||
const [userSpendData, setUserSpendData] = useState<UserSpendData | null>(
|
const [userSpendData, setUserSpendData] = useState<UserSpendData | null>(
|
||||||
null
|
null
|
||||||
|
@ -328,6 +330,7 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
||||||
selectedTeam={selectedTeam ? selectedTeam : null}
|
selectedTeam={selectedTeam ? selectedTeam : null}
|
||||||
data={keys}
|
data={keys}
|
||||||
setData={setKeys}
|
setData={setKeys}
|
||||||
|
premiumUser={premiumUser}
|
||||||
teams={teams}
|
teams={teams}
|
||||||
/>
|
/>
|
||||||
<CreateKey
|
<CreateKey
|
||||||
|
|
|
@ -69,6 +69,7 @@ interface ViewKeyTableProps {
|
||||||
data: any[] | null;
|
data: any[] | null;
|
||||||
setData: React.Dispatch<React.SetStateAction<any[] | null>>;
|
setData: React.Dispatch<React.SetStateAction<any[] | null>>;
|
||||||
teams: any[] | null;
|
teams: any[] | null;
|
||||||
|
premiumUser: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ItemData {
|
interface ItemData {
|
||||||
|
@ -96,7 +97,8 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
|
||||||
selectedTeam,
|
selectedTeam,
|
||||||
data,
|
data,
|
||||||
setData,
|
setData,
|
||||||
teams
|
teams,
|
||||||
|
premiumUser
|
||||||
}) => {
|
}) => {
|
||||||
const [isButtonClicked, setIsButtonClicked] = useState(false);
|
const [isButtonClicked, setIsButtonClicked] = useState(false);
|
||||||
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
||||||
|
@ -619,6 +621,11 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleRegenerateKey = async () => {
|
const handleRegenerateKey = async () => {
|
||||||
|
if (!premiumUser) {
|
||||||
|
message.error("Regenerate API Key is an Enterprise feature. Please upgrade to use this feature.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (selectedToken == null) {
|
if (selectedToken == null) {
|
||||||
message.error("Please select a key to regenerate");
|
message.error("Please select a key to regenerate");
|
||||||
|
@ -994,14 +1001,31 @@ const ViewKeyTable: React.FC<ViewKeyTableProps> = ({
|
||||||
<Button key="cancel" onClick={() => setRegenerateDialogVisible(false)} className="mr-2">
|
<Button key="cancel" onClick={() => setRegenerateDialogVisible(false)} className="mr-2">
|
||||||
Cancel
|
Cancel
|
||||||
</Button>,
|
</Button>,
|
||||||
<Button key="regenerate" onClick={handleRegenerateKey}>
|
<Button
|
||||||
Regenerate
|
key="regenerate"
|
||||||
|
onClick={handleRegenerateKey}
|
||||||
|
disabled={!premiumUser}
|
||||||
|
>
|
||||||
|
{premiumUser ? "Regenerate" : "Upgrade to Regenerate"}
|
||||||
</Button>
|
</Button>
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<p>Are you sure you want to regenerate this key?</p>
|
{premiumUser ? (
|
||||||
<p>Key Alias:</p>
|
<>
|
||||||
<pre>{selectedToken?.key_alias || 'No alias set'}</pre>
|
<p>Are you sure you want to regenerate this key?</p>
|
||||||
|
<p>Key Alias:</p>
|
||||||
|
<pre>{selectedToken?.key_alias || 'No alias set'}</pre>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<div>
|
||||||
|
<p className="mb-2 text-gray-500 italic text-[12px]">Upgrade to use this feature</p>
|
||||||
|
<Button variant="primary" className="mb-2">
|
||||||
|
<a href="https://calendly.com/d/4mp-gd3-k5k/litellm-1-1-onboarding-chat" target="_blank">
|
||||||
|
Get Free Trial
|
||||||
|
</a>
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
{/* Regenerated Key Display Modal */}
|
{/* Regenerated Key Display Modal */}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue