1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2024-11-22 13:29:22 +00:00

Signed out user can get advanced information about groups

This commit is contained in:
Pierre HUBERT 2019-12-25 15:37:09 +01:00
parent 7b36e092b1
commit 1dba026fe6
4 changed files with 15 additions and 3 deletions

View File

@ -140,7 +140,7 @@ export class GroupsController {
*/ */
private static async GroupInfoToAPI(info: GroupInfo, h: RequestHandler, advanced: boolean = false) : Promise<any> { private static async GroupInfoToAPI(info: GroupInfo, h: RequestHandler, advanced: boolean = false) : Promise<any> {
const membership = await GroupsHelper.GetMembershipInfo(info.id, h.getUserId()) const membership = await GroupsHelper.GetMembershipInfo(info.id, h.optionnalUserID)
const data = { const data = {
id: info.id, id: info.id,

View File

@ -93,5 +93,5 @@ export const Routes : Route[] = [
{path: "/groups/get_multiple_info", cb: (h) => GroupsController.GetInfoMultiple(h)}, {path: "/groups/get_multiple_info", cb: (h) => GroupsController.GetInfoMultiple(h)},
{path: "/groups/get_advanced_info", cb: (h) => GroupsController.GetAdvancedInfo(h)}, {path: "/groups/get_advanced_info", cb: (h) => GroupsController.GetAdvancedInfo(h), needLogin: false},
] ]

View File

@ -222,7 +222,7 @@ export class RequestHandler {
public async postGroupIDWithAccess(name: string, minVisibility : GroupsAccessLevel) : Promise<number> { public async postGroupIDWithAccess(name: string, minVisibility : GroupsAccessLevel) : Promise<number> {
const groupID = await this.postGroupID(name); const groupID = await this.postGroupID(name);
const access = await GroupsHelper.GetAccessLevel(groupID, this.getUserId()); const access = await GroupsHelper.GetAccessLevel(groupID, this.optionnalUserID);
if(access == GroupsAccessLevel.NO_ACCESS) if(access == GroupsAccessLevel.NO_ACCESS)
this.error(404, "Specified group not found!"); this.error(404, "Specified group not found!");
@ -369,6 +369,14 @@ export class RequestHandler {
return this.userID; return this.userID;
} }
/**
* Get the ID of the current user (if any)
* or 0 if the user is not signed in
*/
public get optionnalUserID(): number {
return this.userID >= 1 ? this.userID : 0;
}
/** /**
* Check out whether user is signed in or not * Check out whether user is signed in or not
*/ */

View File

@ -204,6 +204,10 @@ export class GroupsHelper {
* @returns Membership info / null if none found * @returns Membership info / null if none found
*/ */
public static async GetMembershipInfo(groupID: number, userID: number): Promise<GroupMember> { public static async GetMembershipInfo(groupID: number, userID: number): Promise<GroupMember> {
if(userID == 0)
return null;
const data = await DatabaseHelper.QueryRow({ const data = await DatabaseHelper.QueryRow({
table: GROUPS_MEMBERS_TABLE, table: GROUPS_MEMBERS_TABLE,
where: { where: {